HTTP Host Header Attack:Basic password reset poisoning

Posted Zeker62

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP Host Header Attack:Basic password reset poisoning相关的知识,希望对你有一定的参考价值。

密码找回方式:

传统的密码找回方式,就是在给预先设定好的邮箱发送重置密码链接。
攻击者可以利用中间人攻击对重置链接密码的数据包进行修改,改为发送成自己的邮箱,从而达到恶意窃取账户的目的。
随着传统技术的发展,通常会附加token进行发送,但是仍然可以进行账户窃取
总的来说,这属于HTTP Host Header Attack的一种。

靶场演练:

打开靶场,首页如此:

去选择忘记密码,期间打开BurpSuite进行抓包
按照题目提示,账户输入用户为wiener,记住,此时不需要截获数据报,只需要确保能在HTTPhistory里面找到这个数据包即可

显示已经将重置密码的链接发给电子邮箱了

现在去服务器,打开电子邮箱,这个服务器并不是专属wiener的服务器,只是可以登录wiener的邮箱而已,这是一个总服务器。

有个链接,点开链接就可以看到重置密码的选项

随便重置一下密码:

返回到首页了,说明密码重置成功,但是我们重置的是wiener的账号密码,并不是目标carlos的,所以我们要重新发送 邮件,将重置密码的链接发送给我们自己,但是要将发送链接的用户名是Carlos:

在HTTP History里面找到一个这样的数据包:

将这个数据报转到Repeater
我们更改一下username,当然,目标邮件地址也需要更改:

我们去查看一下服务器的日志文件:
发现有个梦寐以求的token,就是因为有这个token,所以我们才难以进行很多攻击

复制token:RwpPEi1KMCibO0sfJjNGEJ262w8hNHfC

再转到邮件,点开刚才的链接,但是这次,我们将token修改成为我们自己想要的:
抓包,修改token:

转到一个重置密码的web
不出意外,这个就是重置carlos密码的web链接:

修改完后,试着登录:
成功,靶场完成

以上是关于HTTP Host Header Attack:Basic password reset poisoning的主要内容,如果未能解决你的问题,请参考以下文章

HTTP request header:host, referer, origin的区别

Invalid HTTP_HOST header: ‘xxx.xx.xxx.xxx:8000‘.

java Host Header攻击

webpack-devServer其他机器访问报 invalid host header

我可以停止大量 [Django] ERROR (EXTERNAL IP): Invalid HTTP_HOST header from 陌生网站吗?

nginx 之$proxy_host|$host|$http_host区别