这个SSRF 漏洞很酷
编译:奇安信代码卫士团队
漏洞猎人Vedant 发现了一个可访问目标企业 AWS 元数据的 SSRF 漏洞,并详述了发现过程,如下。
这个目标 web app 和具有很多功能的社交媒体平台差不多,我们假设它是 www.target.com。
由于目标具有很多种功能,因此我决定测试下主要的 web app 而非直接做侦察。所以我支棱起 burp suite 将目标加入范围,开始爬取该 web app。爬虫蜘蛛开始运行时,开始测试该 app 的不同功能。我尝试找到一些不同类型的漏洞如 XSS、IDORs、SQLi、速率限制攻击、业务逻辑错误等,但2小时过去了仍然一无所获。
就在决定放弃的一霎那,突然想起来我还在爬虫呢,于是看到了爬到的很多页面以及很多新的参数。之后开始搜索有意思的参数。5分钟后,得到了如下请求:
GET /proxy/proxy.php?url=some_URL
看到这个请求后,我立即搭好 burp 协调器,生成了一个 payload 并在 url = parameter 中输入,之后发送该请求。结果同时获得了 DNS 和 HTTP 请求的回调请求。这一刻,我欣喜万分。
接着,尝试访问本地主机 (127.0.0.1) 和 /etc/passwd 文件,但这次没有收到任何响应。如果拷贝了从 burp 协调器中获得的 IP 地址并使用 Whois 和 dig 命令后,了解到这个 IP 地址属于目标公司的 AWS 实例。因此这次我尝试访问用于亚马逊 EC2 和其它云计算平台中的 IP 地址169.254.169.254,将元数据分发到云实例中。于是,创建了如下请求:
GET /proxy/proxy.php?url=http://169.254.169.254/latest/meta-data
收到的响应如下:
然后,尝试访问 AWS 访问密钥来证明该 SSRF 的影响,并创建了如下请求:
GET/proxy/proxy.php?url=http://169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance/
结果在响应中获得了 AWS 访问密钥!我对这个结果万分满意!
之后,我快速编写了一份不错的报告并发给该公司,它们在2天内修复了该漏洞。遗憾的是由于该公司设立了负责任披露计划,因此我并未获得任何赏金。不过我从这个漏洞中学习到了很多新知识,希望大家也能有所收获。
我能查看Instagram 所有用户的私人邮件和生日信息
Bug 险中求:作为新手,我怎样才能快速找到不和别人重复的第一个 bug?
https://vedanttekale20.medium.com/story-of-a-really-cool-ssrf-bug-cf88a3800efc
题图:Pixabay License
本文由奇安信代码卫士编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的
产品线。