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.目标网站或存活设的存活检测
5. 远程资源调用功能
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漏洞。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值