声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 |
前言
wayback machine,这是一个获取隐藏 URL 的伟大工具。通过以下URL即可轻松获取 URL:
https://web.archive.org/cdx/search/cdx?url=*.redacted.com/*&output=text&fl=original&collapse=urlkey&filter=statuscode:200
当选择一个网站(例如上面 URL 参数中的 redacted.com)时,我们可以 wayback url 中寻找 API 端点和有价值的参数,如 getImage、 url 、 path 等。
漏洞发现
在一次搜索中,白帽小哥发现了一个可以用于生成 PDF 的 API,参数作为 GET 参数进行传递,URL看起来如下;
https://redacted.com/pdf-service?path=/test/testpage
白帽小哥开始尝试读取一些本地文件,但没有发现任何重要内容:
https://redacted.com/pdf-service?path=/../../../../../../../../etc/passwd
然后白帽小哥尝试传递一个URL给这个参数:
https://redacted.com/pdf-service?path=somethinglikethis.com
同样失败,但却收到了这个请求一些内部报错,于是白帽小哥开始尝试一些字符,看能否绕过该验证:
https://redacted.com/pdf-service?path=@google.com
成功!可以在 PDF 中看到谷歌页面。
这是一个 PDF 生成器,它会将页面转换为 PDF。然后白帽小哥用collaborator URL 试了试,发现该服务器部署在 AWS ec2 上。并且可以看到AWS ec2的几个 IP 地址。
于是白帽小哥开始尝试获取AWS元数据,但却看到的是一个空白的 PDF 页面。
这是因为当服务器无法访问一个域名时,它会返回了一个内部服务器错误。
经过一些尝试后,白帽小哥顺利获得服务器 200 状态响应并返回了 AWS 元数据:
其实这时候已经足够报告漏洞了,但白帽小哥对内部网络心生好奇。
因为这是一个生产环境,白帽小哥发现了一些内部域名。
于是小哥尝试从 localhost 获取一些端口,并成功得到了 3000 端口,这是 nodejs 端口。
但经过几番尝试后,小哥发现扫描 localhost 会导致拒绝服务,于是小哥不得不停止了扫描,只好乖乖地迅速报告漏洞,静静地等待赏金奖励。
如果你是一个长期主义者,欢迎加入我的知识星球,我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款
往期回顾
以上内容由骨哥翻译并整理。
原文:https://medium.com/@gguzelkokar.mdbf15/from-wayback-machine-to-aws-metadata-uncovering-ssrf-in-a-production-system-within-5-minutes-2d592875c9ab