0x00 前言

免责声明

文章仅用作网络安全人员对自己网站、服务器等进行自查检测,不可用于其他用途,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作

本次测试只作为学习用处,请勿未授权进行渗透测试,切勿用于其它用途!

基本信息

  • 中文名 : Host碰撞

  • 造成原因 : 反向代理服务器基于请求头中的Host返回不同的站点服务

  • 攻击手段 : 基于反向代理服务器的返回规则,请求头中设置不同的Host值,可能会访问到隐藏资产

  • 危害 : 停止DNS解析但未被删除或仅限内部访问的资产被暴露

0x01 描述

在域名收集的过程中,我们可能会收集到解析为内网IP的目标,或曾经有过解析记录但现在停止DNS解析的域名,通常这些目标是只对内部提供服务,或者现在停止使用的,我们可以通过Host碰撞方法访问这些目标,以扩展网络边界,获取更多目标资产这是渗透过程中开拓网络边界的一种方法,网站维护人员可根据该原理检查是否存在问题。

0x02 危害

  • 暴露仅对内部使用的网站/业务

  • 暴露已经停止(维护)的站点

  • 暴露正在开发中或需要隐藏的站点

0x03 原理

我们在访问一个网站(https://www.baidu.com)时,必须要经过这几个阶段:

  1. DNS解析域名 www.baidu.com 获取IP地址180.101.50.242

  2. 客户端向IP 180.101.50.242 (web服务器)发送HTTP数据

  3. 反向代理服务器(web服务器)通过读取HTTP请求头中的Host值,匹配是否存在于配置文件中,如果规则匹配则转发请求给绑定的后端网站。

所以我们通常情况下使用 https://www.baidu.comhttps://180.101.50.242 (Host: www.baidu.com) 的请求是一样的,都会正常返回结果,示例如图:

HostCollisionBaiduDomain.png

0x04 检测

示例场景: http://hidden.birdy02.com 是没有解析记录的,它创建于服务器 38.147.170.156 上,并且绑定了hidden.birdy02.com域名和 80 端口,我们直接请求url是获取不到内容的

C:\>curl http://hidden.birdy02.com
curl: (6) Could not resolve host: hidden.birdy02.com

curl快速检测

curl --resolve hidden.birdy02.com:80:38.147.170.156 http://hidden.birdy02.com

SecScan检测

SecScan是一款集漏洞探测、端口扫描、指纹识别为一体的安全工具,该工具支持检测该漏洞。

secScan host -s hidden.birdy02.com -u http://38.147.170.156

批量扫描

secScan host -d birdy02.com -u https://38.147.170.156

0x05 About 作者

以上内容都是根据个人经验编写的,如有遗漏或错误请留言反馈,感谢🙇‍