记录一次host头中毒导致的逻辑漏洞

0x01 前言

暑假的时候翻某安全公众号时发现的一个骚思路。有些网站开发者会提取request包里的host头来获取域名信息,但是host头可以被修改,是不可信的。于是攻击者可以通过构造host头来进行投毒攻击。

例如发送包含受害者网站域名链接的功能,像是密码找回、发送验证链接等,只要业务上利用了类似于域名提取的功能,都可以尝试利用该攻击方法。这里以密码找回为例,进行一次host头投毒攻击。

0x02 示例

某网站存在密码找回功能,本例使用host头中毒来实现任意用户密码重置。打开密码找回界面,填写受害用户的邮箱,在最后的提交按钮用burpsuite截断,把host头更改成自己的服务器IP:

之后放行数据包,会提示找回密码邮件发送成功的信息,此时受害者邮箱会收到一封邮件:

可以看到,域名已经改成了我们在host头填写的服务器地址。这时受害者如果访问该链接,则会在我们的服务器上留下一条记录:

在把原域名和日志抓取到的url拼接一下,就能得到受害人的密码重置链接了。

0x03 后记

这个漏洞是1click的任意密码重置漏洞,利用了host头中毒的思路,我个人感觉还是比较新颖的。不过像大厂安防策略都会对request头数据进行检验,遇到不在白名单的域名直接会拒绝访问。


记录一次host头中毒导致的逻辑漏洞
https://k1nm0.com/2021/09/13/记录一次host头中毒导致的逻辑漏洞/
作者
K1nm0
发布于
2021年9月13日
许可协议