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.目标网站或存活设的存活检测

  1. 远程资源调用功能

6.编辑器进行远程图片抓取,如:ueditor

7.PDF生成或者导出

...

常见绕过手段

1.@

一般用于http://www.xxx.com等域名不可更改,例如http://[email protected],则实际上访问的是 10.10.10.10

2.+@

http://www.xxx.com/proxy?url=https:///10.10.10.10(403)

http://www.xxx.com/proxy?url=https:///[email protected](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漏洞。

相关推荐
网络抓包与爬虫1 小时前
如何在Android studio用flutter开发app
websocket·网络协议·tcp/ip·http·网络安全·https·udp
色的归属感1 小时前
android studio 安装flutter插件
websocket·网络协议·tcp/ip·http·网络安全·https·udp
vortex53 小时前
如何为 Debian 和 Kali 系统更换软件源并更新系统
linux·运维·网络·网络安全·渗透测试·debian·kali
予安灵7 小时前
《白帽子讲 Web 安全》之跨站请求伪造
网络·安全·web安全·网络安全·csrf·跨站请求伪造
网络抓包与爬虫7 小时前
android应用崩溃了,通过崩溃手机连接电脑查找日志方法
websocket·网络协议·tcp/ip·http·网络安全·https·udp
iOS技术狂热者9 小时前
Flutter Mac上使用VSCode支持Flutter开发
websocket·网络协议·tcp/ip·http·网络安全·https·udp
黑客笔记11 小时前
在PyCharm 中免费集成Amazon CodeWhisperer
python·web安全·网络安全·pycharm
久违 °13 小时前
【安全运营】关于攻击面管理相关概念的梳理(二)
安全·web安全·网络安全
jingshaoyou13 小时前
【9】Strongswan collections —— enumerator
网络安全
菜根Sec13 小时前
网络安全法律法规简介
安全·web安全·网络安全·法律法规