host头部注入漏洞--中危
host头部注入漏洞--中危
- 漏洞原理
- 漏洞知识扩展
- 漏洞验证
- 情况一
- 情况二
- 修复方案
漏洞原理
为了方便获取网站域名,开发人员一般依赖于请求包中的Host首部字段。例如,在php里用_SERVER[“HTTP_HOST”]。但是这个Host字段值是不可信赖的(可通过HTTP代理工具篡改),如果应用程序没有对Host字段值进行处理,就有可能造成恶意代码的传入。
漏洞知识扩展
Host首部字段是HTTP/1.1新增的,旨在告诉服务器,客户端请求的主机名和端口号,主要用来实现虚拟主机技术。
运用虚拟主机技术,单个主机可以运行多个站点。以下图为例,test1和test2两个站点都运行在同一服务器A上,不管我们请求哪个域名,最终都会被解析成服务器A的IP地址,这个时候服务器就不知道该将请求交给哪个站点处理,因此需要Host字段指定请求的主机名。
我们访问test1域名,经DNS解析,变成了服务器A的IP,请求传达到服务器A,A接收到请求后,发现请求报文中的Host字段值为test1,进而将请求交给test1站点处理。
漏洞验证
Host头攻击漏洞的验证比较简单,只需要抓包,修改Host字段值,提交,查看响应中是否包含修改后的Host字段值即可。
情况一
正常请求,响应302,Location首部字段指明跳转的地址,其中Location字段值为Host字段指定的地址。
情况二
正常请求,正常响应,将Host字段值拼接到标签属性值中。(因为自己目前还没遇到这种情况,就先借鉴下别人的图啦)
修复方案
1、服务器方面
唯一可信的只有 SERVER_NAME,这个在Apache和Nginx里可以通过设置一个虚拟机来记录所有的非法host header。
Nginx里还可以通过指定一个SERVER_NAME名单,Apache也可以通过指定一 个SERVER_NAME名单并开启UseCanonicalName选项。
建议以上两种方法同时使用。
2、应用方面
在网站安装和初始化的时候,要求管理员提供一个可信任的域名白名单。如果这个实现起来比较困难,那至少也要保证使用使用getServerName()代替getHeader(“Host”)。
参考链接:
https://www.freebuf.com/articles/web/202764.html
host头部注入漏洞--中危相关推荐
- Linux 3306漏洞,中危漏洞“MySQL,3306,内部敏感服务对外开放存在风险,容易引起安全问题”解决办法...
一.为什么会报MySQL,3306,内部敏感服务对外开放? mysql默认是不允许远程访问服务器的,就像我们本地去访问mysql数据库,它默认是不允许的:如果你有开启远程访问,允许任何地址都能访问你的 ...
- 网络安全之WEB注入漏洞(上)
WEB漏洞-----SQL 壹.基础知识 前言 讲解各种WEB层面上的有哪些漏洞类型,具体漏洞的危害等级,以及简要的影响范围测试进行实例分析,思维导图中的漏洞也是我们将要学习到的各个知识点,其实针对漏 ...
- 网络安全——HTTP头部注入
一.HTTP头部注入概述 1.HTTP工作原理 2.HTTP报文类型 (1).请求报文 (2).响应报文 3.HTTP头部内容 referer主要用来统计页面访问次数 二.HTTP头部注入 1.原理: ...
- 德慎思信息安全-OWASP 系列之注入漏洞(上)
OWASP 系列之注入漏洞(下) 摘要 上一期,我们介绍了注入漏洞中常见的 SQL 注入漏洞,主要内容是以 MySQL 为例介绍了 SQL注入的基本原理,并举例了几个常见的注入手法与原理.本期我们来介 ...
- 安全漏洞中的屠龙刀——SQL注入
one.概念 SQL注入(SQL Injection)就是攻击者将SQL语句通过Web网页注入到网站后台的数据库中,从而对数据库进行控制或者破坏.SQL注入是一种主流的攻击方式.在OWASP Top ...
- 漏洞高危 中危 低危的划分标准
漏洞等级采用CVSS 2.0标准的评分原则,对单个漏洞进行基本向量评分.CVSS : Common Vulnerability Scoring System,即"通用漏洞评分系统" ...
- 热门Ruby 库中存在严重的命令注入漏洞
聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 开发人员修复了用于解析和转换 AsciiDoc 文件的热门 Ruby库中存在一个命令注入漏洞. 命令注入漏洞可使攻击者在运行应用程序的服务器上执 ...
- Sophos 修复 Cyberoam OS 中的 SQL 注入漏洞
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 Sophos 公司为 Cyberoam 防火墙和路由器发布热补丁,修复一个 SQL 注入漏洞. Sophos 在2014年收购防火墙和 ...
- 浅析Java代码审计中的SQL注入漏洞
浅析Java代码审计中的SQL注入漏洞 1.注入漏洞简介 2.SQL注入漏洞简介 3.JDBC拼接不当造成SQL注入 第一关:使用Statement 第二关:使用PrepareStatement 4. ...
最新文章
- FckEditor-未能映射路径/UserFiles/image/
- Matlab | matlab中@的用法总结(附matlab测试代码):What does “@“ do ?
- 查看Centos7系统参数和机器参数
- linux 高性能服务排查方式
- SQLIntegrityConstraintViolationException: 异常解决
- CCFollow和ActionCallFunc
- ES6——函数参数默认值
- 谈谈Cost function and gradient的matlab写法
- 《Python黑帽子》学习笔记
- Python语言翻译包translate,支持翻译多语种
- 如何一次性批量打印PDF、Word、Excel、PPT和图片 - 文件批量打印工具
- android 谷歌地图围栏,基于OpenLayers实现地理围栏 谷歌百度高德地图都可以
- 数据结构-连续线段-C语言-[输入n条线段各个端点坐标,求包含最多线段的连续线段]
- 监控系统存储服务器和磁盘阵列,浅谈磁盘阵列如何应用于监控储存领域
- html 自动加载activex控件,管理加载项未显示加载控件
- 2013年1月CPU性能天梯图
- Las Vegas算法八皇后问题最好的一种实现
- halo开源博客搭建微信小程序实现内容同步-总结
- 大明宫发动机和个人的考虑发达国家
- 配置微型计算机实验报告,微型计算机原理实验报告.docx