nginx修复host头攻击

程序员最难受的事情,就是你开开心心的开发着代码,突然一个维护的事情让你做,别问为什么开发要弄维护的,问就是当初上错了轿。这次的web漏洞是host头攻击,虽然对对方说,我们代码里没有用到host头的地方,无奈对方不理睬,只能硬着头皮整改了。

参考文章:
https://www.jianshu.com/p/690acbf9f321
https://blog.csdn.net/ImSanJin/article/details/100080904?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
https://blog.csdn.net/QHJJHQ/article/details/80431714

大致意思就是你代码里如果用到host头这个字段,那么别人就能通过这个字段注入恶意代码。

修复方式:
在nginx配置文件中的Server中添加一下代码,大致意思是判断host头是否是指定的host,如果是则放行,不是就返回403(资源不可用)

server{
listen 6069;
server_name 127.0.0.1;
set $flag = 0;
if($host == "www.baidu.com"){
	set $flag = 1;
}
if($flag = 0){
	return 403;
}
proxy_pass http://127.0.0.1:6068;
}

漏洞复现可以使用burpsuite来进行复现,具体操作过程就是
先在ie浏览器中,设置 – internet选项 – 连接 – 局域网设置,设置代理服务器。

用burpsuite 的 proxy 中 抓包 请求参数 ,然后修改host 头
nginx修复host头攻击_第1张图片
点击action – send to repeater
nginx修复host头攻击_第2张图片
点击send,可以查看效果,如果返回信息里的host头是你修改后的host头信息,则存在此漏洞。反正如果403错误,则视为修复完成。

免责声明 改软件的说明以及截图,只为漏洞复现,和安全学习使用,如果其他人在查看文章后造成的不良影响,由其自身全部承担,本人不承担任何责任。

你可能感兴趣的:(web项目及服务器部分漏洞)