前言
持续更新:整理下渗透测试工作中发现过的漏洞(包含漏洞描述、漏洞等级、漏洞验证、修复建议),这里不深究漏洞产生的各种后利用或者绕过方式,漏洞验证过程不局限于文章中的方法,能够证明漏洞存在即可。
0x01 漏洞描述
- HOST头注入 -
在很多情况下,开发人员都会信任 HTTP 请求包 Header 中的 Host 字段值,并使用它来生成链接、导入脚本,甚至使用其值生产密码重置链接。这种行为非常不当,因为 HTTP HOST 字段值可能会被攻击者控制。如果应用程序没有对 Host 字段值进行处理,攻击者就可以使用 Web 缓存中毒和滥用替代通道(例如密码重置电子邮件)等手段来利用此漏洞。
0x02 漏洞等级
威胁级别 | 高危 | 中危 | 低危 |
0x03 漏洞验证
使用 BurpSuite 工具抓取网站数据包,修改任意 HOST 字段地址,响应页面中的链接地址也被替换成功,证明漏洞存在。
0x04 漏洞修复
- Web 应用程序应使用 SERVER_NAME,而不是 HOST字段值。
- Nginx 修改 ngnix.conf 文件,在 server 中指定一个 server_name 名单,并添加检测。
- Apache 修改 httpd.conf 文件,指定 ServerName,并开启 UseCanonicalName 选项。
- Tomcat 修改 server.xml 文件,配置 Host 的 name 属性。