赏金猎人私藏,公网IP藏着内网门
原创
升斗安全XiuXiu
升斗安全XiuXiu
升斗安全
2026年11月1日 10:57
广东
去阅读
【文章说明】
- 目的:本文内容仅为网络安全技术研究与教育目的而创作。
- 红线:严禁将本文知识用于任何未授权的非法活动。使用者必须遵守《网络安全法》等相关法律。
- 责任:任何对本文技术的滥用所引发的后果自负,与本公众号及作者无关。
- 免责:内容仅供参考,作者不对其准确性、完整性作任何担保。
阅读即代表您同意以上条款。
【内容概览】做资产收集时,我们经常会碰到一类\"打不开\"的资产:域名指向内网、IP 回个 40X、或者回 200 但怎么点都没反应,目录扫描也常空手而归。本文要聊的\"HOST 碰撞\",就是专门对付这类资产的一招,它通过伪造请求头里的 Host 字段,把藏在反向代理后面的内网业务重新从公网 IP 上\"钓\"出来。文章会从原理、适用场景、常见误区,到具体工具和打法一步步讲透,适合想补全信息收集手段的赏金猎人。
不知道你有没有过这种时候:
辛辛苦苦做了一家企业资产收集,域名清单拉了几百条,IP 段也扫了一大片。结果一打开,全是冷水:有的域名解析到 10.x、192.x 这种内网地址,浏览器直接告诉你打不开;有的 IP 干脆甩你一个 400、403、404,门都不让进;还有的更气人,状态码明明是 200,可你输什么它都一脸死水,毫无变化。
你不服气,拿字典去扫目录,扫了大半天,0 个有用结果。
这时候,很多人就放弃了。但老猎人知道,这种\"明明在、又进不去\"的资产,往往藏着甜头。它背后大概率蹲着一个反向代理,把请求悄悄转给了内网某台服务器。而只要这台反代的 Host 配置没清干净,我们就有一招可以试试【HOST 碰撞】。
HOST 碰撞这个名字挺玄,其实机制特别简单:
正常访问一个网站,浏览器会在请求里带上 Host 头,告诉服务器\"我要找的是哪个站点\"。比如你访问 sso.xxx.com,Host 就是 sso.xxx.com,服务器根据 Host 决定把请求交给谁处理。
问题出在反向代理上。企业经常把一堆内网业务,OA、邮箱、SSO、后台,通过一台边缘的反代服务器对映射出去。哪天某个业务下掉了,运维把 DNS 的 A 记录删了,外网域名就解析不到它了。但如果反代服务器上那条\"Host 映射到内网地址\"的配置忘了删,它就还在。
这时我们干一件事:直接拿反代服务器的 IP 去访问,但在请求里把 Host 头手动改成那个早就被\"下架\"的内网域名。反代一看,哦这个 Host 我认识,转给内网那台机器吧。于是,本该藏在内网的业务,被我们隔着公网 IP 又摸到了。
判断有没有撞上也很直白:改完 Host 之后,页面跟之前不一样了,返回了正常的业务内容,那基本就坐实了。
按我的经验,HOST 碰撞主要出现在两种场景:
第一种,上面说的,业务曾经对外、后来收进内网,DNS 的 A 记录删了,反代配置没跟着删。这种最典型,也最好找。
第二种,测试业务。有些系统压根不打算对外开放,只给开发和测试内部用,却阴差阳错被反代挂到了公网可达的 IP 上。这种往往权限还挺高,因为谁也没把它当\"生产资产\"盯着。
网上讲 HOST 碰撞的文章,十篇里有八篇会告诉你:看到 IP 状态码是 40X 再去做碰撞。
我觉得这话不全对,甚至容易让人漏掉真家伙。
我自己的打法是:只要这个 IP 能访问,不管它回的是 200 还是 40X,我都觉得有碰撞的价值。
为什么?因为现在稍微大点的公司,都流行\"资产统一把控\"。所有业务先收进内网,再通过反代一台台映射出去。这就埋下了一个隐患:哪天配置没配对,或者忘了清掉某个域名指向,内网资产就顺着这台反代漏出来了。而且这种漏,跟你当前看到的 HTTP 状态码没必然关系。一个回 200 的 IP,背后可能蹲着好几个没暴露的 oa、sso 域名等着被你撞出来。
实话说,我在几家大厂的目标上,光靠这个思路就复现过不止三次。当然,这是我个人实战体会,各位权当参考,别当成铁律。
我的方法和网上大佬不太一样,他们偏\"定向\",要么拿到了内网域名再去撞,要么只盯着 40X 的 IP。我更\"撒网\"一点:
第一步,把目标的外网域名全收一遍,内网的也别放过,有时候从 JS、文档、泄露记录里能抠到。
第二步,把目标的 IP 段都拉出来。
第三步,外网域名单独存一个 hostList.txt 备用。
第四步,把外网域名全部 ping 一遍,拿到它们解析的 IP,再连同你收集到的目标 IP 段,一起存成 ipList.txt。注意,只留外网能访问的 IP。
第五步,拿 ipList.txt 和 hostList.txt 做交叉碰撞。
第六步,把\"能互相解析\"的 IP 挑出来。举个具体的:域名 aa.xxx.com 解析到 42.169.88.55,域名 bb.xxx.com 解析到 42.142.165.49。这时候你拿 IP 42.169.88.55,把它的 Host 改成 bb.xxx.com,再打开,如果显示的还是 bb.xxx.com 的内容,那这条 IP 就有价值了。
第七步,也是最关键的一步:对挑出来的 IP 做 host 爆破。自己构造一批常见的内网重要域名,挨个撞。比如 oa、user、mail、sso、portal 这几个前缀,几乎每家大厂都会用。撞中了,内网后台可能就直接躺你面前。
讲完思路,说点落地。我常用三种方式:
方式一:用现成工具 HostCollision。这是作者开源的一个 Java 小工具,GitHub 上能下。把 ipList.txt 和 hostList.txt 按格式填进 dataSource 目录,然后 java -jar 跑一下,它会在根目录生成一个带日期的结果文件,碰撞成功的全在里面,适合批量。
方式二:用 Burp。如果你只盯一个 IP 做精细测试,可以拿请求包改 Host 头,发到 Intruder 里跑 host 字典爆破。缺点是它一次只能一个 IP 一个 IP 地来,没法像 HostCollision 那样批量交叉。
方式三:浏览器直连。想肉眼确认撞没撞上,可以改本机 hosts 文件,把目标域名指向那个反代 IP,然后用浏览器正常打开。Windows 下路径是 C:\Windows\System32\drivers\etc\hosts,加一行\"IP 空格 域名\"就行。嫌麻烦也可以用 Burp 当代理拦请求改 Host。
HOST 碰撞不是什么高大上的 0day,它吃的是企业资产配置的马虎。真要挖,记住三件事:内网常见域名多备点,oa、user、mail、sso、portal 这几个;目标 IP 和域名尽量收集全;工具用熟,HostCollision 先下载好。剩下的,就交给运气和耐心了。
最后多说一句合规的:这一招属于信息收集阶段,请务必只在你拥有授权的目标、或自查自家资产时使用。拿它去碰别人的未授权资产,边界就歪了。
看到这里的朋友,如果这招帮你补全了信息收集的思路,或者让某个\"打不开\"的资产有了着落
👍 点个赞,让更多同行知道还有这种\"钓鱼内网\"的姿势。
⭐ 关注我,资产收集、WAF 绕过、漏洞挖掘的实战还会接着写。
🔁 顺手转发给还在对着 40X 干瞪眼的朋友,少走点弯路。
💬 也推荐给做安全的伙伴,你们见过最离谱的 HOST 碰撞案例是啥?评论区聊聊。
保持好奇,保持安全。🛡️
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论