一、host碰撞原理环境搭建
在虚拟机下搭建Nginx环境配置(192.168.202.128)
1. 设置一个server为ip访问时返回400
2. 设置一个sever为访问某个域名时重定向到内网的某个服务
server {
listen 81 default_server;
server_name _;
return 400;
}
server {
listen 81;
server_name www.test_fyn.com;
location / {
proxy_pass http://192.168.3.153:5000;
proxy_redirect off;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
root html;
index index.html index.html;
}
access_log logs/test.com.log;
}
然后重启一下Nginx服务
./nginx -s reload
然后再物理机搭建一个flask的服务器192.168.3.153:5000,然后使用虚拟机的IP地址192.168.202.128来模拟公网ip
2. 漏洞复现
访问192.168.202.128:81返回状态码为400
使用域名www.test_fyn.com访问,也是显示无法访问
但是可以ping通
使用Burp抓包替换
把host替换为www.test_fyn.com域名,访问成功,并返回200
以上就是host漏洞环境的原理的环境搭建过程
环境搭建参考火线平台的文章:host碰撞-搭建环境复现_火线安全的博客-CSDN博客_host碰撞