【渗透测试】服务器端请求伪造 - 伪造文件

  • A+
所属分类:安全文章

点击上方蓝字“Ots安全”一起玩耍

概括 :

服务器端请求伪造 (SSRF) 攻击用于针对位于防火墙后面且无法从外部网络访问的内部系统。SSRF 攻击可被用来访问内部运行的服务,如 SSH、Local-Host、FTP、Gopher 等。在正常的 SSRF 攻击中,攻击者可能会导致服务器连接到组织基础设施内的内部服务。


描述 :

我发现这个服务器端的热曲Ë上的私人bugcrowd程序ST伪造漏洞。该程序可以选择上传没有对上传的文件类型进行验证的文档。它允许上传所有文件。所以我简单地编写了有效负载并将文件保存为 .html 并上传了它。一段时间后,我在 burp 协作服务器上收到了 pingback,因此我使用 whois 命令检查了 IP 地址,它属于公司本身,但与我的目标 IP 不同,无法从 Internet 访问。这是一种基本的 SSRF 攻击,我能够找到内部 IP,但无法进一步利用它。该错误被归类为 P3,我获得了 500 美元的赏金。后来严重程度改为P4。

【渗透测试】服务器端请求伪造 - 伪造文件

我是如何发现这个漏洞的?

我创建了一个帐户,登录后我可以选择上传文档

【渗透测试】服务器端请求伪造 - 伪造文件

文件上传

2.我启动了burp collaborator客户端来生成payload,然后点击“Copy to clipboard”复制payload

【渗透测试】服务器端请求伪造 - 伪造文件

Burp协作客户端

【渗透测试】服务器端请求伪造 - 伪造文件

复制到剪贴板

3. 我用代码创建了 .html 文件并粘贴了复制的有效负载并保存了文件

【渗透测试】服务器端请求伪造 - 伪造文件

有效载荷

4. 我在我的目标网站上上传了 .html 文件

【渗透测试】服务器端请求伪造 - 伪造文件

上传文件

5. 一段时间后,我在我的 burp 合作者客户端上收到了 pingbacks

【渗透测试】服务器端请求伪造 - 伪造文件

内部 Ping-back

为什么会这样?

在我看来,

当我将 .html 文件上传到服务器时,服务器读取文件的内容并尝试使用其内部 IP 从我的 burp 协作客户端获取图像,该 IP 反映在我的 burp 协作客户端上。


利用代码:

<html><body><img src=http://<BurpCollaboratorURL></img></body></html>

然后将其另存为 .html 并上传。


影响 :

攻击者可以利用信任关系升级来自易受攻击的应用程序的攻击并执行未经授权的操作。


缓解措施:

缓解 ssrf 攻击的一个好方法是将应用程序需要访问的 IP 地址或 DNS 名称列入白名单。SSRF 没有通用的修复方法,因为它高度依赖于应用程序功能和业务需求。

在我的情况下,缓解措施应该是,应用程序应该只允许上传 pdf、png、jpeg、tiff 等图像文件

【渗透测试】服务器端请求伪造 - 伪造文件

本文始发于微信公众号(Ots安全):【渗透测试】服务器端请求伪造 - 伪造文件

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: