Nội dung bài viết
#

SSRF là gì? Cách kiểm tra lỗ hổng bảo mật SSRF

Nội dung bài viết

    Server Side Request Forgery (SSRF) được biết đến là một trong những cuộc tấn công gây hậu quả nghiêm trọng và khó ngăn chặn bậc nhất. Vậy SSRF là gì? Hôm nay BKHOST sẽ cùng các bạn tìm hiểu.

    Server Side Request Forgery (SSRF) là gì?

    Server Side Request Forgery (SSRF) la gi

    Server-side request forgery (SSRF) là một loại tấn công bảo mật mà người tấn công sử dụng máy chủ để thực hiện yêu cầu không mong muốn đến một máy chủ khác hoặc dịch vụ khác trên cùng một mạng.SSRF được sử dụng để thu thập thông tin bảo mật, đánh cắp dữ liệu, hoặc thực hiện các tác vụ khác không mong muốn trên máy chủ hoặc trên mạng nội bộ.

    Lỗ hổng này chủ yếu được tìm thấy trong ứng dụng có cơ sở cung cấp URL để tìm nạp dữ liệu từ các máy chủ tương ứng, cũng có trong ứng dụng trong đó hai hoặc nhiều máy chủ từ các máy chủ khác nhau giao tiếp với nhau để chia sẻ thông tin. Để hiểu hơn về SSRF hãy cùng theo dõi ví dụ sau:

    Vi du tan cong SSRF

    Ở ví dụ trên những kẻ tấn công gửi packet A đến server có sẵn công khai và để đáp ứng truy vấn của người dùng, server công cộng sẽ gửi yêu cầu đến server phụ trợ cùng với packet B, vì yêu cầu này đến từ server công cộng nên server phụ trợ sẽ tin tưởng rằng packet B đến từ mạng nội bộ và chấp nhận packet và gửi phản hồi. Điều này có thể xảy ra vì kẻ tấn công thực hiện yêu cầu thay mặt cho các server khác.

    Các loại Server Side Request Forgery (SSRF)

    1. Blind SSRF

    Trong Blind SSRF, dữ liệu của packet B được gửi đến ứng dụng trong mạng nội bộ đáng tin cậy nhưng kẻ tấn công không thể kiểm soát. Tại đây, kẻ tấn công có thể kiểm soát địa chỉ IP và các cổng của server. Để khai thác loại SSRF này, chúng tôi phải cung cấp URL theo sau là dấu hai chấm và số cổng, chúng tôi có thể tìm thấy các cổng mở và đóng của máy chủ bằng cách quan sát các phản hồi và thông báo lỗi từ máy chủ. Để kiểm tra trạng thái của chúng nên chúng tôi đã thử quy trình này cho các cổng khác nhau.

    Ví dụ:

    http://example.com:1337http://example.com:9923http://example.com:43http://example.com:22

    2. Phản hồi hạn chế/Partial SSRF

    Trong loại SSRF này, chúng tôi nhận được phản hồi hạn chế từ server như tiêu đề của trang hoặc có quyền truy cập vào tài nguyên nhưng không thể xem dữ liệu. Chúng tôi chỉ có thể kiểm soát một số phần nhất định của packet B đến ứng dụng nội bộ, có thể sử dụng loại SSRF này để đọc các tệp hệ thống cục bộ như /etc/config, /etc/hosts, etc/passwd và nhiều tệp khác. Chúng ta có thể đọc các tệp trên hệ thống bằng cách sử dụng giao thức file:// . Trong một số trường hợp, XXE injection, DDos, các loại lỗ hổng này có thể hữu ích khi khai thác Lỗ hổng Partial SSRF.

    Ví dụ:

    {{EJS0}}

    3. SSRF phản hồi đầy đủ

    Trong SSRF loại này, chúng tôi có toàn quyền kiểm soát packet B . Từ đó có thể tìm các lỗ hổng trong mạng nội bộ bằng cách truy cập các dịch vụ đang chạy trên mạng nội bộ. Trong loại SSRF này, chúng ta có thể sử dụng các giao thức như file://, dict://, http://, gopher://, v.v. để tạo các yêu cầu khác nhau và khai thác mạng nội bộ nếu phát hiện lỗ hổng. Bằng cách gửi một chuỗi lớn trong yêu cầu gây ra lỗi tràn bộ đệm lỗ hổng loại này có thể khiến ứng dụng gặp sự cố do tràn bộ đệm.

    Ví dụ:

    {{EJS1}}

    Các yếu tố trong quá trình kiểm tra lỗ hổng SSRF

    • Whitelisting: Server chỉ cho phép một số tên miền được sử dụng trong request, server có danh sách trắng tên miền nếu tên miền trong danh sách đó khớp với tên miền trong request thì chỉ chấp nhận yêu cầu, ngược lại server từ chối yêu cầu.
    • Blacklisting (Danh sách đen): Server loại bỏ tất cả các yêu cầu chứa địa chỉ IP, tên miền và từ khóa khỏi danh sách đen của server.
    • Restricted content (Nội dung bị hạn chế): Server chỉ cho phép người dùng truy cập một số lượng tệp cụ thể, nó chỉ cho phép một số loại phần mở rộng tệp để truy cập công khai.

    Các điểm chính để kiểm tra lỗ hổng SSRF

    • Luôn đảm bảo rằng bạn đang thực hiện các yêu cầu tới server phụ trợ thay mặt cho server công cộng chứ không phải từ trình duyệt.
    • Để tìm nạp dữ liệu từ máy chủ, hãy thử http://localhost/xyz/ với http://127.0.0.1/xyz.
    • Server có thể có tường lửa bảo vệ luôn cố gắng vượt tường lửa nếu có thể.
    • Đảm bảo rằng yêu cầu đến từ server chứ không phải từ server cục bộ của bạn.

    Tổng kết về SSRF

    Vừa rồi BKHOST đã cùng bạn tìm hiểu về Server Side Request Forgery (SSRF) và các loại SSRF. Hy vọng bài viết đã mang đến cho bạn những kiến thức bổ ích.

    Nếu còn gặp bất cứ vướng mắc gì về SSRF, hãy để lại ở bên bình luận bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.

    P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.

    Mua Hosting Linux tại BKHOST

    Giảm giá cực sâu, chất lượng hàng đầu. Đăng ký ngay hôm nay:

    linux hosting

    Tôi là Trịnh Duy Thanh, CEO & Founder Công ty Cổ Phần Giải Pháp Mạng Trực Tuyến Việt Nam - BKHOST. Với sứ mệnh mang tới các dịch vụ trên Internet tốt nhất cho các cá nhân và doanh nghiệp trong nước và quốc tế, tôi luôn nỗ lực hết mình nâng cấp đầu tư hệ thống phần cứng, nâng cao chất lượng dịch vụ chăm sóc khách hàng để đem đến những sản phẩm hoàn hảo nhất cho người tiêu dùng. Vì vậy, tôi tin tưởng sẽ đem đến các giải pháp CNTT mới nhất, tối ưu nhất, hiệu quả nhất và chi phí hợp lý nhất cho tất cả các doanh nghiệp.
    Bình luận
    Trượt lên đầu trang
    Miễn phí cước gọi
    Chat ngay qua Zalo
    Chat ngay qua Messenger
    Bạn đã hài lòng với trải nghiệm trên Bkhost.vn?
    Cảm ơn lượt bình chọn của bạn, Chúc bạn 1 ngày tốt lành !