【渗透测试】http头攻击

1.什么是HTTP Host标头?

从HTTP / 1.1开始,HTTP Host标头是必需的请求标头。它指定了客户端要访问的域名。例如,当用户访问https://portswigger.net/web-security时,他们的浏览器将编写一个包含Host标头的请求,如下所示:
GET / web-security HTTP / 1.1
主机:portswigger.net
【渗透测试】http头攻击_第1张图片
HTTP Host标头的用途

  1. •HTTP Host标头用于帮助识别客户端所需的后端组件 与之沟通。
  2. •如果请求不包含主机标头,或以某种方式格式不正确,则此将传入的请求路由到预期的应用程序时可能会导致问题。
  3. •基于云的解决方案和许多相关架构的外包,它是多个网站和应用程序可以通过同一IP进行访问地址

虚拟主机:一种可能的情况是单个Web服务器托管多个Web服务器。网站或应用程序。这可能是一个拥有一个所有者的多个网站,但这是也可以将拥有不同所有者的网站托管在一个共享的网站上平台
通过中介路由流量:将网站托管在不同的后端时服务器,但客户端和服务器之间的所有流量都通过中介系统。这可能是一个简单的负载平衡器或反向代理服务器某种形式(CDN)

(1)•浏览器发送请求时,目标URL将解析为IP地址特定服务器。当该服务器收到请求时,它指的是主机标头,以确定所需的后端,并根据请求转发请求

2.识别HTTP主机标头漏洞
•提供一个任意的主机头:
【渗透测试】http头攻击_第2张图片•检查有缺陷的验证:
【渗透测试】http头攻击_第3张图片•检查有缺陷的验证:
【渗透测试】http头攻击_第4张图片

•注入主机替代头:
【渗透测试】http头攻击_第5张图片
3.如何利用HTTP Host标头

利用经典的服务器端漏洞
o访问受限功能
o使用虚拟主机强行访问内部网站
o基于路由的SSRF
•利用经典的服务器端漏洞
o使用虚拟主机强行访问内部网站
o基于路由的SSRF
•示例1:密码重置中毒攻击以获取重置密码链接:
【渗透测试】http头攻击_第6张图片
•示例2:通过Host标头进行Web缓存中毒:(重复的Host标头)
【渗透测试】http头攻击_第7张图片

4.在portswigger上的演示实验室HTTP主机头

•密码重置中毒:
•https://portswigger.net/web-security/host-header/exploiting/password-resetpoisoning

•Web缓存中毒:
•https://portswigger.net/web-security/host-header/exploiting/lab-host-header-webcache-poisoning-via-ambiguous-requests

•主机头身份验证绕过:
•https://portswigger.net/web-security/host-header/exploiting/lab-host-

•实验:基于路由的SSRF:
https://portswigger.net/web-security/host-header/exploiting/lab-host-headerrouting-based-ssrf

关于黑客一号的一些报道:

•通过Host标头导致Web缓存中毒
•https://hackerone.com/reports/977851
•https://hackerone.com/reports/504514
•密码重置中毒:
Sun *网络安全团队6
•https://hackerone.com/reports/226659
•https://hackerone.com/reports/791293
•注入主机替代头
•https://hackerone.com/reports/698416
•https://hackerone.com/reports/758380

5.防止HTTP主机标头攻击

•保护绝对URL
•验证主机标头(ALLOWED_HOSTS)
•不支持主机替代标题
•将允许的域列入白名单
•注意仅限内部使用的虚拟主机

你可能感兴趣的:(研究,网络安全,渗透测试,windows,安全漏洞)