HTTP Header欺骗(Host头攻击)——伪造目标域名
HTTP Header欺骗(Host头攻击)——伪造目标域名摘要:Host头攻击是一种利用Web服务器依赖Host请求头生成链接或重置密码邮件的行为。黑客修改Host头为恶意域名,诱使服务器发送钓鱼链接或泄露内部信息。本文通过重置密码邮件劫持示例讲解Host头注入,并提供白名单验证、不使用Host头生成URL等防御。关键词:黑客网站攻击;Host头攻击;渗透测试;请求走私变种;密码重置劫持一、引言许多Web应用使用$_SERVER['HTTP_HOST']或request.getHeader("Host")来构建绝对URL。如果服务器信任该头而不验证,黑客可通过修改Host头,使密码重置邮件中的链接指向evil.com,用户点击后窃取token。二、攻击示例[*]正常请求:POST /reset Host: example.com → 发送邮件链接 https://example.com/reset?token=123
[*]攻击请求:POST /reset Host: evil.com → 邮件链接为 https://evil.com/reset?token=123
[*]攻击者收到token后可以重置任意用户密码。
三、防御措施
[*]白名单验证Host头:仅允许已配置的域名。
[*]不使用Host头生成URL:使用配置中的serverName或从X-Forwarded-Host(可信代理)。
[*]使用绝对路径而非绝对URL:/reset?token=123 不包含域名。
[*]Web服务器层面:Apache VirtualHost中仅响应合法域名,Nginx设置server_name。
四、总结Host头攻击配置简单,防御也简单:不要信任用户提供的Host头,而是使用白名单。
页:
[1]