HW时遇到的问题
📃漏洞描述
为了方便的获得网站域名,开发人员一般依赖于HTTP Host header。例如,在php里用_SERVER[“HTTP_HOST”]。但是这个header是不可信赖的,如果应用程序没有对host header值进行处理,就有可能造成恶意代码的传入。
📃测试方法
修改请求头host信息,若修改后和修改前的响应信息一致,则说明存在此漏洞;
若修改后和修改前的响应信息不一致(修改前正常响应,修改后拒绝访问),则代表无此漏洞,即修复成功。
📃解决办法
web应用程序应该使用SERVER_NAME而不是host header。
在Apache和Nginx里可以通过设置一个虚拟机来记录所有的非法host header。
在Nginx里还可以通过指定一个SERVER_NAME名单,Apache也可以通过指定一个SERVER_NAME名单并开启UseCanonicalName选项。