AI 摘要(由 ChatGPT 总结生成):
文章讲述了作者面对一个对公网暴露的网站的限制,通过对HTTP Host头的攻击漏洞进行绕过。作者首先尝试使用目录扫描工具未果,然后发现只有一个端口开放,但访问均跳转到同一URL。在抓包分析中,作者发现HTTP Host头的攻击漏洞,成功修改Host头实现绕过限制。通过替换相关字符串和修复js、css文件路径,最终成功访问网页。文章最后指出HTTP Host头攻击漏洞在多应用部署的情况下可能存在问题,并提到了相关攻击行为,承诺在下篇文章中详细介绍。

前言

今天遇到了一个奇怪的要求,A 说最近他们对公网暴露面的一个网站做了一些“限制”,找到我们看看能否进行绕过,这个事儿后来他人也让我来看看。此时的我还在忙其他事情,看到要求后就先临时看了看网站,由于 A 说的不是很明了,故我的第一反应则是网站可能存在某个二级目录下,毕竟这样的限制是最简单的,于是乎先使用 dirsearch、gobuster 等相关工具扫了下,以及相应目录层层扫了下,无果。

后看了看网站 IP 开放了哪些端口,发现仅这一个端口,且怎么访问皆会跳转到当前的这个 URL ,事情似乎到这儿理应结束了,但是今天中午休息的时候,脑海里突然冒出来一种方式,遂去验证了下,这也就有了本文。

突破“限制”

这次突破的漏洞点是 HTTP Host 头攻击,这个方式之前遇到也针对性学习过,但是在实际应用上遇到的不是那么多,故第一时间没有想到,这次又真正的遇到了一次,话不多说,开始!

今晚时间有限,有关 HTTP Host 头相关具体介绍以及攻击思路后面会单独出一篇文章去介绍它。

首先打开网页并抓包,就一个平平无奇的页面,什么都没有,HTML代码都没有多余的信息:

image-20230614231613098

然后对 HTTP 请求头中的 Host 头进行测试,将 Host 改成经典的 127.0.0.1 本地回环地址,发现 302 状态码中跟随的 Location 头也变了,故存在 HTTP Host 头攻击漏洞,如图:

image-20230614233447158

接下来,就使用原 URL 并修改请求头中的 Host 头,成功打开原网页,此时浏览器里也显示了网页内容,由于修改了 Host 头,定义在 HTML 代码中的设定的 URL 链接也被定义成了 127.0.0.1 ,故前端的相关 js、css 文件找不到正常路径加载,故页面显示不完全:

image-20230614234324283

然后就是去抓包工具中,修改替换请求中的相关字符串,以在传输过程中完成相关字符替换以及使得原有的 js、css 文件得以加载,如图:

image-20230614234955504

接下来刷新网页,成功打开并访问网页,成功完成绕过:

image-20230614235345327

小结

本次的“绕过”主要是利用到了 HTTP Host 头攻击漏洞,这个漏洞在历史上看,并不存在太大问题,因为每个 IP 地址只会被用于单个域的内容。如今,往往在同一个 IP 上部署多个 Web 应用程序(不同端口,不同域名解析等)的方式愈来愈多,同一 IP 地址可访问多个网站和应用程序。且从 HTTP / 1.1 开始,HTTP Host 标头则是必需的请求标头, 这个漏洞也慢慢的被重视到,且也延伸了多个攻击行为,如:密码重置中毒、Host 头 + SSRF 组合拳等等,剩下的留到下篇文章在介绍吧,瑞思拜!

End

本文标题:记一次奇怪的“绕过”历程

本文链接:https://www.isisy.com/1488.html

除非另有说明,本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

声明:转载请注明文章来源。

如果觉得我的文章对你有用,请随意赞赏