文章目录
- 漏洞介绍
- 如何判断存在SSRF漏洞
- SSRF常见协议
- 防御手段
- 可能会产生SSRF漏洞的函数(php)
- 可能会出现ssrf的场景/功能点
- 常见绕过手段
- ssrf无回显如何利用?
- autorepeater与ssrf挖掘
漏洞介绍
SSRF中文名为服务端请求伪造。它允许攻击者通过篡改服务端发起的请求 ,向目标服务器发送伪造的网络请求。这种漏洞的严重性非常高,因为它允许攻击者绕过防火墙和访问控制机制,直接访问内部网络资源或执行未授权的操作。
如何判断存在SSRF漏洞
SSRF是由服务器发送请求的安全漏洞,所以我们可以通过抓包放包分析送达的请求是否由服务器送达的,从而判断是否存在SSRF漏洞。
SSRF常见协议
http/https
Http协议: 最常用的SSRF漏洞利用协议,作用为直接访问http资源。如: http://xxx.com/api/readFiles?url=http.//10.1.1.1/x
file
File协议:可利用此协议进行服务器文件读取
如:http://xxx.com/api/readFiles?url=file:///etc/passwd
dict
Dict协议:可用此协议进行端口开放探测(通常探测一个网段)
如:http://xxx.com/api/readFiles?url=dict//1000.1:22
gopher
Gopher协议是一种早期的互联网协议,尽管现在已经被HTTP协议所取代,但在SSRF漏洞利用中,它仍然具有独特的优势。Gopher协议支持发出GET、POST等HTTP请求,这使得攻击者可以通过构造符合Gopher协议的请求,绕过一些安全限制,实现对目标服务器的攻击。
(redis未授权写计划任务面试喜欢问)
如何用gopher协议构造get请求
1.构造http get型请求包
2.URL编码、替换回车换行符为%0d%0a
3.发送gopher协议
防御手段
1.限制请求的端口为http常用的端口,比如:80,443,8080,8090。
2.统一错误信息,避免用户可以根据错误信息来判断远端服务器的端口状态。
3.禁用不需要的协议。仅仅允许http和https请求。可以防止类似于file:///,gopher://,ftp:// 等引起的问题。
4.过滤返回信息,验证远程服务器对请求的响应是比较容易的方法。
可能会产生SSRF漏洞的函数(php)
1.file_get_contents
2.sockopen()
3.curl_exec()
...
可能会出现ssrf的场景/功能点
1.通过url地址进行王爷分享
2.通过url地址把原地址的网页转换格式
3.图片的加载与下载
4.目标网站或存活设的存活检测
- 远程资源调用功能
6.编辑器进行远程图片抓取,如:ueditor
7.PDF生成或者导出
...
常见绕过手段
1.@
一般用于http://www.xxx.com等域名不可更改,例如http://www.xxx.com@10.10.10.10,则实际上访问的是 10.10.10.10
2.+@
http://www.xxx.com/proxy?url=https:///10.10.10.10(403)
http://www.xxx.com/proxy?url=https:///10.10.10.10@www.xxx.com(200)
3./#/
一般用于.jpg等固定后缀不可更改
例如http://10.10.10.10:5001/#/abc.jpg
实际在浏览器访问的是 http://10.10.10.10:5001
4.302重定向
把一个302文件放在自己的vps上。有些网页设置了内网黑名单,当你请求url中包含内网地址就自动屏蔽,我们可以把302的跳转文件放在自己的vps主机上,当你发现有ssrf漏洞存在,可以直接请求你的vps上的302文件,然后再重定向到他的内网上,实现绕过。
5.dns重绑定(类似于条件竞争)
ssrf无回显如何利用?
利用dnslog来判断是否存在ssrf漏洞
autorepeater与ssrf挖掘
正则:
(https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()!@:%_\+.~#?&\/\/=]*)|https?%3(a|A)%2(f|F)%2(f|F)(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()!@:%_\+.~#?&\/\/=]*))
这段正则匹配url中请求的网页,可以用bp的autorepeater插件自动替换掉,然后来看响应体的情况确定是否存在ssrf漏洞。