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‘.
webpack-devServer其他机器访问报 invalid host header
我可以停止大量 [Django] ERROR (EXTERNAL IP): Invalid HTTP_HOST header from 陌生网站吗?