MetInfo Host头污染致使重置用户密码

if we know some user's email, the we will can reset the user's email by host header attack. 若是咱们知道了某个注册用户的邮箱,那么咱们就可以经过头注入的方式重置任意用户的密码。因此这个漏洞的攻击前提是在于用户必需要绑定邮箱,且咱们知道这个用户的邮箱。服务器

正常的找回密码发送的请求以下:spa

经过这个图片能够看出来,因为咱们是在本地搭建的,全部请求头是localhost。因此咱们收到的重置密码的连接以下:3d

其中这个重置密码链接的Host头就是来自于咱们上面找回密码发送请求时的Host头。若是咱们修改找回密码时的请求头为咱们的恶意Host,那么重置密码的连接也将发生改变。code

因此若是一个攻击这修改了请求头为本身的DNS服务器,而且知道某位用户的邮箱,就能够发送一份伪造的重置密码的邮件到用户的邮箱。当用户点击以后,攻击者就能够收到这个请求包括其中的Token,攻击者将其替换为真实的请求头,那么就能够修改掉用户的密码了。blog

操做步骤以下:图片

  1. 修改重置密码请求的Host头email

  2. 用户收到的重置密码邮箱以下:bfc

  3. 用户点击重置密码的链接请求

  4. 攻击者经过本身的DNS服务器收到以下的信息。密码

  5. 攻击者将其替换为真实的请求头,让访问这个链接就能够修改用户的密码了。

漏洞缘由:

形成这个漏洞的缘由是在于,在进行邮件请求地址拼接的时候,使用是经过$_M取的host都信息,而$_M是经过$_SERVER['HTTP_HOST']直接获取的HOST头信息,没有进行任何的校验,因此致使攻击者可以可以修改Host头信息,从而进行重置密码的连接的修改。

相关文章
相关标签/搜索