前言
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 会导致拒绝服务,于是小哥不得不停止了扫描,只好乖乖地迅速报告漏洞,静静地等待赏金奖励。
你学到了么?
以上内容由骨哥翻译并整理。