如何HOST碰撞挖掘隐蔽资产

2024-12-17 130 0

前言:HOST碰撞的概念已提出很久了,但是网上的部分文章感觉都解释得不太详细,可能是作者水平比较高的缘故哈哈,自行省略了很多细节没谈。于是想写一篇新手师傅也能看懂的HOST碰撞的文章,解释清楚HOST碰撞到底原理是啥,怎么利用,怎么修复……

什么是反向代理

解释HOST碰撞之前,先要理解反向代理的概念,这一点很重要。

反向代理是一种服务器配置,它代理客户端的请求并将其转发到一个或多个后端服务器。在这种模式下,客户端不知道实际的后端服务器地址,所有的请求都由反向代理服务器接收并转发给后端服务器处理,然后将结果返回给客户端。

与传统的正向代理(客户端请求通过代理访问外部资源)不同,反向代理的角色是隐藏后端服务器的存在,客户端只与代理服务器交互。反向代理通常用于负载均衡、提升安全性、缓存静态内容等场景。

有点懵?没事,看图说话:举个例子

如何HOST碰撞挖掘隐蔽资产插图

比如我们作为客户端去访问a.test.com,在目标服务器没有使用反向代理的情况下,请求是直接到达服务器1的,也就是我们的客户端是直接与服务器进行交互的,此时去查询a.test.com的ip,就为DNS中解析绑定的IP,也就是服务器1的真实ip:210.120.1.111,并且也能直接使用其ip地址访问到服务器1!但是考虑到安全性,负载均衡,缓存机制等等问题,大部分企业在架构web服务时往往不会像这样直接把服务器1的真实ip暴露出来,而是在所有后端服务器之前,再架设一台Nginx反向代理服务器!

在有反向代理服务器的情况下,我们再次请求a.test.com,那么请求就先经过Nginx反向代理服务器,经过反向代理服务器的绑定配置检查发现a.test.com对应210.120.111主机,于是把请求转发给210.120.111主机进行交互,210.120.111返回的响应,先返回给Nginx反向代理服务器,再由它返回给客户端,而如果直接使用服务器1的真实ip地址访问,则不会返回服务器1的内容,因为有Nginx反向代理的存在,它只允许我们使用正确的对应绑定的域名访问,也就是a.test.com,此时去查询其ip地址,就不再是210.120.111了,而是DNS解析绑定的210.120.1,也就是反向代理服务器的ip,而单独去访问这个210.120.1地址也看不到什么东西或者是一些默认界面(取决于怎么配置),于是就隐藏了后端服务的IP地址,让我们客户端或者攻击者请求a.test.com时不知道到底是哪一个服务器在与我们进行交互。

也就是,当客户端请求a.test.com时,DNS服务器会返回反向代理服务器的IP(例如210.120.1)。反向代理服务器收到请求后,根据其配置文件中的规则(比如基于域名)将请求转发到正确的后端服务器(例如210.120.1.111)。

相信师傅们在渗透中就经常遇到这样的情况,Apache默认界面,Nginx默认界面,404,403,400,空白界面等等;还有多个不同的域名去查询它们的ip地址居然都是相同的,但是访问这个ip地址又什么都没有……这些都很可能是使用了反向代理的情况

HOST碰撞的原理

明白了反向代理,HOST碰撞就很好懂了。HOST碰撞其实就是反向代理配置不当导致的:

比如我想给服务器1配置反向代理,使得外部只能通过a.test.com访问服务器1的地址210.120.1.111,而使用其真实ip访问是异常状态,则无法解析,我需要做这几步操作,第一,我首先得把a.test.com域名解析到210.120.1.1 IP地址,也就是反向代理的地址,让DNS服务器能解析a.test.com域名到反向代理服务器,然后第二步才是反向代理的配置,在反向代理服务器上,把a.test.com域名与210.120.1.111地址进行绑定,从而使得访问a.test.com时,反向代理能把请求正确地转发到210.120.1.111地址

示例配置代码:/etc/nginx/nginx.conf 在反向代理服务器210.120.1.1上配置

server {
    listen 80;
    server_name a.test.com;  # 设置域名,确保 DNS 已将 a.test.com 指向你的服务器

    location / {
        proxy_pass http://210.120.1.111;  # 设置反向代理目标地址(IP地址)
        proxy_set_header Host $host;  # 保留原始请求头的 Host(确保目标服务器能识别到正确的域名)
        proxy_set_header X-Real-IP $remote_addr;  # 设置真实客户端 IP
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  # 传递客户端 IP 链
        proxy_set_header X-Forwarded-Proto $scheme;  # 传递协议(http 或 https)
    }

   

4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

恶意软件分析 (二) 灵活多变的勒索软件Qilin
Tomcat内存马分析
记录一次公益SRC常见的cookie注入漏洞
Pwn2Own Automotive 2025首日,白帽黑客成功利用了16个零日漏洞
黑客利用图片隐藏恶意软件,传播VIP键盘记录器和0bj3ctivity信息窃取器
微软披露macOS漏洞CVE-2024-44243,允许安装Rootkit

发布评论