一个有漏洞的JSP代码案例:


使用HTTP代理工具,如BurpSuite篡改HTTP报文头部中HOST字段时,加红框中变量即客户端提交的HOST值,该值可被注入恶意代码。

request.getServerName( )方法引用HTTP报文头部中HOST字段

如过上面的页面在base标签里用了 basePath
那么页面上js 或者 css 就会请求 被注入的恶意路劲

还有一种就是情况访问网站时如果访问路径中缺少/,大多数中间件都会自动将路径补全,返回302或301跳转如下图,Location位置的域名会使用Host头的值。



这种情况实际上风险较低,难以构成Host头攻击。但是由于大多漏洞扫描器会将这种情况检测为Host头攻击,为了通过上级检查或各种审核,大多数甲方单位会要求修复漏洞,彻底解决问题

修复方法:

Nginx:
方法一:
修改nginx.conf

添加一个默认server,nginx 会根据访问头(request head)中Host
的数据来确定使用哪个server来处理当前请求。如果请求没有匹配任何 server,或者访问头(request
head)中没有包含Host的数据,那么nginx会将该请求路由给默认的
server,当host头被修改匹配不到server时会跳到该默认server,该默认server直接返回403错误。
server { listen 8888 default_server; server_name _; access_log off; return 403
; }
方法二:
修改nginx.conf

在目标server添加检测规则,参考以下配置:(if部分)
server { server_name 192.168.0.171; listen 8888; if ($http_Host !~*^192.168.0.
171:8888$) { return 403; } include /etc/nginx/default.d/*.conf; location / {
root /www/dvwa;index index.php index.html index.htm; } }
Tomcat:
修改tomcat\conf\server.xml

找到如下位置:

将Host里的name修改为静态的域名,如下:


友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信