前言:
遇到个Host-header-injection,简单的查查资料,总结一下这方面的知识。
目录:
0x01:漏洞原理
0x02:黑盒测试
0x03:漏洞危害
0x04:如何修复
漏洞原理
在互联网上,大部分情况下一个web服务器,有着一个IP和多个网站。那么当我们向web服务器做出请求时,web服务器是如何识别到底是访问其中的哪个网站呢?这就是HOST存在的理由。
而当服务器获取HOST的方式不当时,就会产生很多问题。
例如下面的代码。
<a href="http://<?php echo _SERVER['HOST'] ?>">Redirect</a>
SERVER['HOST']是可以通过抓包修改的。一切用户的输入都是不可相信的。
正常
Request:
GET / HTTP/1.1
Host: example.com
Response:
HTTP/1.1 302 Object moved
Location: http://www.example.com
<a href="http://www.example.com">Redirecting...</a>
黑盒测试
三种修改方式
漏洞危害
%0d%0aset-cookie%20%3atest%3dtrue;
如何修复
1:HOST白名单
2:获取真实HOST。
个人博客:www.bywalks.com