HTTP Host 头攻击,是什么鬼?( 五 )


  • 第二步,基于Host头的SSRF探测内网主机
假如一些敏感的页面(比如管理页面),深处于内网,外网无法访问,但是通过Host头攻击+SSRF可达到绕过访问控制,从而访问内网资产,这里Fuzz内网的IP的C段为192.168.0.0/24,直接利用Intruder枚举:
HTTP Host 头攻击,是什么鬼?

文章插图
 

HTTP Host 头攻击,是什么鬼?

文章插图
 
得到内网IP为192.168.0.240
  • 第三步,访问内网资源
构造 /admin 页面,在Host处换位内网IP:
HTTP Host 头攻击,是什么鬼?

文章插图
 
5.4.2 Host头攻击+SSRF—使用绝对路径的URL有时候服务端会校验Host头的值,如果Host被修改,服务端会拒绝一切修改过后的请求:
HTTP Host 头攻击,是什么鬼?

文章插图
 
普通请求通常在请求域上使用相对路径,但是,服务端也同时可能配置了绝对URL的请求,采用如下形式可绕过对Host的验证:
GET http://acab1f4b1f3c7628805c2515009a00c9.web-security-academy.net/ HTTP/1.1
HTTP Host 头攻击,是什么鬼?

文章插图
 
接着用 “Burp Collaborator client” 进行外带:
HTTP Host 头攻击,是什么鬼?

文章插图
 
外带成功,说明Host头被服务端使用来向指定域名请求资源,直接SSRF爆破内网:
HTTP Host 头攻击,是什么鬼?

文章插图
 
访问内网页面:
HTTP Host 头攻击,是什么鬼?

文章插图
 
6 HTTP Host头攻击防护最简单的方法是避免在服务器端代码中完全使用Host头,可以只使用相对URL 。
其他方法包括:
6.1 正确配置绝对域名URL当必须使用绝对域名URL时,应在配置文件中手动指定当前域的URL,并引用配置的值,而不是从HTTP的Host头中获取 。这种方法可防止密码重置的缓存投毒 。
6.2 白名单校验Host头的域如果必须使用Host头,需要正确校验它的合法性 。这包括允许的域,并使用白名单校验它,以及拒绝或重定向对无法识别的主机请求 。这包括但不仅限于单个web应用程序、负载均衡以及反向代理设备上 。
6.3 不支持主机头覆盖确保不适用与Host头功能相近的字段,如X-Forwarded-Host、X-Forwarded-For等,这些有时候是默认开启的 。
值得一提的是,不应该将内网使用的Host主机(不出网)与公网的应用程序托管在同一个服务器上,否则攻击者可能会操纵Host头来访问内部域 。




推荐阅读