0x01 前言
在SRC漏洞挖掘中或者渗透测试中,前期收集好各种WEB应用,开心的打开Burpsuite准备大干一场的时候,发现全是403 404 400 500,于是你开始扫描端口、爆破目录,但是什么都没有信息都没有出来,结果灰溜溜的关闭了浏览器和你的Burpsuite。作为安全圈的老混子,碰到这种情况我们该怎么破局呢?
0x02 HOSTS碰撞
我们在平常摸鱼中,经常会碰到这样一种情况,直接利用ip访问显示的是403 404 400 500,但是用域名请求就会返回正常业务。当然在排除WAF作祟下(有一些WAF它会要求使用域名访问,使用IP的会出现WAF的拦截界面),我们就可以利用hosts碰撞技术来尝试一下是否能突破边界。
0x03 漏洞原理
漏洞产生的根本还是源于配置不当,一些系统配置了内网访问,但是由于配置不当的话,例nginx配置不当,或者nignx default_server没有配置或者配置内网,那么内网的业务可能存在被传出的风险。
0x04 漏洞利用步骤
一、收集目标的域名和IP作为字典
可使用一些工具如oneforall
也可结合其他工具,搜集的域名和IP越详细越好
二、利用脚本碰撞
脚本地址
https://github.com/fofapro/Hosts_scan
将搜集到的域名和IP分别放入hosts.txt 和 ip.txt
0x05 漏洞复现
搭建环境
安装nginx
[root@localhost etc]# yum install -y epel-release [root@localhost etc]# yum -y update [root@localhost etc]# yum install -y nginx
配置漏洞环境
1、设置反向代理
这里用apache模拟反向代理端口(实际上应该还要创建一个网卡去模拟内网端口,为了省事就模拟一下端口吧),为了防止端口与nginx冲突,我们修改为8000端口。
2、限制IP访问
配置文件位置/etc/nginx/nginx.conf
替换配置文件中的http部分如下
http { include /etc/nginx/conf.d/*.conf; # 限制IP访问 server { listen 80 default; server_name _; return 403; } server { listen 80; server_name www.test.com; location / { #反向代理 proxy_pass http://192.168.178.143:8000; index index.html index.htm index.jsp; } } }
配置好访问结果如下
然后我们修改本地hosts文件,添加一条本地解析
然后使用www.test.com进行访问
即可访问到apache默认页面,假设某公司内部系统也错误配置,我们即可访问到该公司的内部系统。
3、脚本复现
下载脚本
https://github.com/fofapro/Hosts_scan
把收集过来的域名和IP分别存入hosts.txt 和 ip.txt
然后运行脚本
可以看到碰撞成功的结果
0x06 参考文献
http://r3start.net/wp-content/uploads/2019/08/2019080916135087.pdf