我正在使用以下方式搜索错误赏金计划 谷歌呆子,当我遇到一家公司(例如,Example Inc.)时,他们的范围相对较大,我想我应该尝试一下。
在做了一些侦察并找到一些有趣的领域之后,我开始使用他们的API, https://api.example.com。最近我了解了有关主机标头注入的更多信息,所以我想也许我可以从它开始。
API 就是这样工作的,因此用户必须提供包含有效API 密钥值的X-API-KEY 标头。如果用户没有向此标头提供有效密钥,他将收到403 响应,即Forbidden。我没有有效的密钥,因此,如前所述,我使用了Host 标头。
令我惊讶的是,将标头设置为除初始主机标头值之外的任何值,将导致获得200 响应,即OK。不过,我无法使用API,但我可以枚举目录并访问(以前无法访问的)robots.txt 文件,在其中我可以部分查看网站的结构。
注射前
注射后
尽管如此,我还是收到了一些403 响应,但奇怪的是,不存在的目录会返回200 响应(我认为目录/vict0niIsTheBest 不存在,但仍然得到了200 响应)。这样,如果不查看其内容,我就无法判断响应200 的目录是否真的存在。
Content-Length 大于0 的目录没有任何价值。但我也收到了一些301 回复。使用301 响应测试一些目录,我意识到,通过更改Host 标头,我将被重定向到 任何 网站。
所以我现在的目标是找到尽可能多的带有301 响应的目录。我最近了解到一个工具,名为 噗噗 所以我尝试了一下。
ffuf -w big.txt -u "https://api.example.com/FUZZ" -H "Host: localhost" -o ~/Desktop/bugHunting/targets/example/ffuf_big_301.txt -mc 301
这样,我能够在访问10 个(!)主机标头注入易受攻击的端点后找到它们,但又进行了另一个主机标头注入!