前言
本篇将讲解在Host参数存在注入漏洞时,如何利用burpsuite修改Host参数实现身份验证绕过并达到我们想要的目的。
题目分析
题目页面如下:
既然要利用Host参数实现注入操作,那么就必须得先确认Host是否存在可注入漏洞。有时为了防止服务器收到无法识别的域名请求,会将服务器配置为后备选项。当服务器设置为后备选项时,即便Host标示的域名不正确也会返回默认的页面。在这种情境下,我们就可以直接修改Host来确认是否可以进行注入。
但在大部分情况下,如果直接修改Host,由于Host起到的是标识的作用,因此会返回invalid Host header错误提示,此时无法正常访问网站。这种情境下,将通过发送模糊请求、Host覆盖等方式确认Host是否可注入。
本篇使用的靶场题目确认Host能否注入的方式为前者,其它方式笔者将在之后的篇章进行讲解。
访问Home并进行抓包,然后发送至repeater处:
接着修改Host为abc并发送请求,响应状态为200 OK并返回默认网页的源码:
之后尝试访问robots.txt文件:
发现存在一个不允许访问的admin文件夹,接着尝试访问/admin:
权限要求为本地用户,于是修改参数Host的值为localhost尝试能否访问:
正常响应,表明Host确实存在可注入漏洞,源码大概意思为创建删除用户的功能。在确定Host存在可注入漏洞的情况下,抓包后用proxy修改Host值为localhost,接着访问admin:
点击delete即可删除用户。至此,我们借助Host参数存在的注入漏洞,成功绕过管理员身份验证,直接进入管理员界面。
总结
当抓包后修改Host为不正确的值却仍然可以访问网站时,表明设置了默认网站,此时可以通过将Host修改为我们需要的值之后,观察网站的响应情况来判断当前Host参数能否进行注入。