目标URL存在http_host头攻击漏洞复现及修复
目标URL存在http_host头攻击漏洞复现及修复
文章目录
- 目标URL存在http_host头攻击漏洞复现及修复
- 漏洞说明
- 漏洞描述
- 危险等级
- 修复建议
- 漏洞复现
- curl测试方法
- BurpSuite测试方法
- 漏洞修复
- 漏洞修复方案
- 漏洞修复验证
- 参考文章
漏洞说明
漏洞描述
为了方便的获得网站域名,开发人员一般依赖于HTTP Host header。例如,在php里用_SERVER[“HTTP_HOST”]。但是这个header是不可信赖的,如果应用程序没有对host header值进行处理,就有可能造成恶意代码的传入。
危险等级
中危
修复建议
web 应用程序应该使用 SERVER_NAME 而不是 host header。在 Apache 和 Nginx 里可以通过设置一个虚拟机来记录所有的非法 host header。在 Nginx 里还可以通过指定一个 SERVER_NAME 名单,Apache 也可以通过指定一个 SERVER_NAME 名单并开启UseCanonicalName 选项。
下图为绿盟扫描器的报告截图:
漏洞复现
可以使用 curl 或 BurpSuite 工具修改 Host 请求头,复现测试
curl测试方法
curl -h-I, --head Show document info only-H, --header <header/@file> Pass custom header(s) to server-v, --verbose Make the operation more talkative
curl -v -H "Host: www.baidu.com" http://192.168.64.149
测试结果:任意修改 Host 请求头,服务器都能返回 302 Found
BurpSuite测试方法
BurpSuite 下载链接:
https://portswigger.net/burp/releases/professional-community-2022-1-1?requestededition=community
开启代理抓包后,Send to Repeater
点击 Send 重复发送当前包,下面是未修改的正确 Host 请求头,及其返回状态码:200 OK
任意修改 Host 请求头,再发送数据包,观察返回状态码。可以看到都能返回:200 OK,即正常请求到 web 页面
漏洞修复
漏洞修复方案
修改 nginx.conf 配置,设置 server_name,添加正则表达式匹配 host 请求头的值,不匹配情况返回403。
# server_name localhost;#### http_Host fixserver_name 127.0.0.1 192.168.64.149;if ($http_Host !~* ^127.0.0.1$|^192.168.64.149$) {return 403;}## 语义解析:
## ! 非
## ~ 匹配正则
## * 任意
## ^ 匹配开头字符
## & 匹配末尾字符
## | 或
## 首先指定server_name字段值;
## 如果变量$http_Host不是(127.0.0.1或192.168.64.149),if判断成立,执行后面的内容,即返回403跳转页面;
## 如果变量$http_Host是(127.0.0.1或192.168.64.149),if判断不成立,则不执行后面的内容。
## 建议查阅nginx官方文档:https://nginx.org/en/docs/http/ngx_http_core_module.html#server_name
重启 nginx
nginx -s reload
漏洞修复验证
当 Host 请求头正确匹配 server_name(127.0.0.1或者192.168.64.149)时,服务器返回了 302 Found;
其他任意 Host 请求头未匹配 server_name 的情况下,服务器都返回 403 Forbidden。
- curl 测试结果
- BurpSuite 测试结果
以上,如有错误之处,敬请指正。
参考文章
https://nginx.org/en/docs/http/ngx_http_core_module.html#server_name
https://www.freesion.com/article/18441013466/
https://www.cnblogs.com/huiy/p/13427401.html
目标URL存在http_host头攻击漏洞复现及修复相关推荐
- 检测到目标URL存在http host头攻击漏洞
一.前言 漏洞描述:为了方便的获得网站域名,开发人员一般依赖于HTTP Host header.例如,在php里用_SERVER["HTTP_HOST"].但是这个header是不 ...
- java host头攻击漏洞_Java Web项目漏洞:检测到目标URL存在http host头攻击漏洞解决办法...
检测到目标URL存在http host头攻击漏洞 详细描述 为了方便的获得网站域名,开发人员一般依赖于HTTP Host header.例如,在php里用_SERVER["HTTP_HOST ...
- 检测到目标URL存在http host头攻击漏洞,修复方案:在Web服务器防止Host头攻击
一.前言 漏洞描述:为了方便的获得网站域名,开发人员一般依赖于HTTP Host header.例如,在php里用_SERVER["HTTP_HOST"].但是这个header是不 ...
- Java Web项目漏洞:检测到目标URL存在http host头攻击漏洞解决办法
2019独角兽企业重金招聘Python工程师标准>>> 如果此博文很幸运的帮助到了您,请问我点个赞吧(✪ω✪)谢谢 1.问题漏洞描述 2.JSP头部中有如下代码,这样的使用方法就会被 ...
- CNVD-2022-03672/CNVD-2022-10270:向日葵简约版/向日葵个人版for Windows命令执行漏洞复现及修复建议
CNVD-2022-03672/CNVD-2022-10270:向日葵简约版/向日葵个人版for Windows命令执行漏洞复现及修复建议 本文仅为验证漏洞,在本地环境测试验证,无其它目的 漏洞编号: ...
- Nginx漏洞修复之目录穿越(目录遍历)漏洞复现及修复
Nginx漏洞修复之目录穿越[目录遍历]漏洞复现及修复 漏洞描述 漏洞复现 环境搭建 漏洞验证 漏洞修复 参考链接 漏洞描述 前言 Nginx是一个高性能的HTTP和反向代理服务器,经常被做为反向代理 ...
- 检测到目标URL存在http host头攻击漏洞(中风险)
漏洞描述 为了方便的获得网站域名,开发人员一般依赖于HTTP Host header.例如,在php里用_SERVER["HTTP_HOST"].但是这个header是不可信赖的, ...
- Tomcat Ajp(CVE-2020-1938) 漏洞复现与修复
前言 2月20日,国家信息安全漏洞共享平台(CNVD)发布了Apache Tomcat文件包含漏洞(CNVD-2020-10487/CVE-2020-1938).该漏洞是由于Tomcat AJP协议存 ...
- URL存在http host头攻击漏洞-修复方案
[使用Nginx的修复方案] if ( $host !~* " 10.4.15.1| 10.9.4.9 " ) { return 403; } [基于tocmat的修复方 ...
最新文章
- OKR的火爆,正是基于这些价值
- linux shell编程语句if、case.
- 新思科技助力IBM将AI计算性能提升1000倍
- 方舟 game.ini 配置文件_方舟突然回归|这次居然是住院篇!
- 【渝粤题库】陕西师范大学165209 组织职业生涯管理 作业(专升本)
- “约见”面试官系列之常见面试题之第五十九篇之js中push(),pop(),unshift(),shift()的用法小结 (建议收藏)
- python调用matlab环境配置、非常详细!!!_[python][matlab]使用python调用matlab程序
- jQuery之load方法
- MySQL48道经典基础面试题(包含各个方面)
- 数学-泰勒展开和拉格朗日
- 手机输入法带拼音声调_五笔已经淘汰,拼音到达瓶颈,百度重拳出击,全新输入方式来袭!...
- 带蓝色的紫罗兰色——三色配色篇
- Bootstrap分割线和普通分割线
- 麦客服务器维修,麦客
- 【mssql】SQL Server2012编程入门经典(第四版)(上) 读书笔记
- 微博html5版打不开,PC端网页版微博就是打不开是什么问题啊!缓 – 手机爱问
- 快门背后的机器学习:实时 HDR+ 和双重曝光控制
- 乍得“随军”记 ——写在结婚一周年
- http://coolshell.cn/
- 考研【真题】一些名校的部分真题(侵权请通知我删除)