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头部注入漏洞--中危相关推荐

  1. Linux 3306漏洞,中危漏洞“MySQL,3306,内部敏感服务对外开放存在风险,容易引起安全问题”解决办法...

    一.为什么会报MySQL,3306,内部敏感服务对外开放? mysql默认是不允许远程访问服务器的,就像我们本地去访问mysql数据库,它默认是不允许的:如果你有开启远程访问,允许任何地址都能访问你的 ...

  2. 网络安全之WEB注入漏洞(上)

    WEB漏洞-----SQL 壹.基础知识 前言 讲解各种WEB层面上的有哪些漏洞类型,具体漏洞的危害等级,以及简要的影响范围测试进行实例分析,思维导图中的漏洞也是我们将要学习到的各个知识点,其实针对漏 ...

  3. 网络安全——HTTP头部注入

    一.HTTP头部注入概述 1.HTTP工作原理 2.HTTP报文类型 (1).请求报文 (2).响应报文 3.HTTP头部内容 referer主要用来统计页面访问次数 二.HTTP头部注入 1.原理: ...

  4. 德慎思信息安全-OWASP 系列之注入漏洞(上)

    OWASP 系列之注入漏洞(下) 摘要 上一期,我们介绍了注入漏洞中常见的 SQL 注入漏洞,主要内容是以 MySQL 为例介绍了 SQL注入的基本原理,并举例了几个常见的注入手法与原理.本期我们来介 ...

  5. 安全漏洞中的屠龙刀——SQL注入

    one.概念 SQL注入(SQL Injection)就是攻击者将SQL语句通过Web网页注入到网站后台的数据库中,从而对数据库进行控制或者破坏.SQL注入是一种主流的攻击方式.在OWASP Top ...

  6. 漏洞高危 中危 低危的划分标准

    漏洞等级采用CVSS 2.0标准的评分原则,对单个漏洞进行基本向量评分.CVSS : Common Vulnerability Scoring System,即"通用漏洞评分系统" ...

  7. 热门Ruby 库中存在严重的命令注入漏洞

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 开发人员修复了用于解析和转换 AsciiDoc 文件的热门 Ruby库中存在一个命令注入漏洞. 命令注入漏洞可使攻击者在运行应用程序的服务器上执 ...

  8. Sophos 修复 Cyberoam OS 中的 SQL 注入漏洞

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 Sophos 公司为 Cyberoam 防火墙和路由器发布热补丁,修复一个 SQL 注入漏洞. Sophos 在2014年收购防火墙和 ...

  9. 浅析Java代码审计中的SQL注入漏洞

    浅析Java代码审计中的SQL注入漏洞 1.注入漏洞简介 2.SQL注入漏洞简介 3.JDBC拼接不当造成SQL注入 第一关:使用Statement 第二关:使用PrepareStatement 4. ...

最新文章

  1. FckEditor-未能映射路径/UserFiles/image/
  2. Matlab | matlab中@的用法总结(附matlab测试代码):What does “@“ do ?
  3. 查看Centos7系统参数和机器参数
  4. linux 高性能服务排查方式
  5. SQLIntegrityConstraintViolationException: 异常解决
  6. CCFollow和ActionCallFunc
  7. ES6——函数参数默认值
  8. 谈谈Cost function and gradient的matlab写法
  9. 《Python黑帽子》学习笔记
  10. Python语言翻译包translate,支持翻译多语种
  11. 如何一次性批量打印PDF、Word、Excel、PPT和图片 - 文件批量打印工具
  12. android 谷歌地图围栏,基于OpenLayers实现地理围栏 谷歌百度高德地图都可以
  13. 数据结构-连续线段-C语言-[输入n条线段各个端点坐标,求包含最多线段的连续线段]
  14. 监控系统存储服务器和磁盘阵列,浅谈磁盘阵列如何应用于监控储存领域
  15. html 自动加载activex控件,管理加载项未显示加载控件
  16. 2013年1月CPU性能天梯图
  17. Las Vegas算法八皇后问题最好的一种实现
  18. halo开源博客搭建微信小程序实现内容同步-总结
  19. 大明宫发动机和个人的考虑发达国家
  20. 配置微型计算机实验报告,微型计算机原理实验报告.docx

热门文章

  1. Android Jpush极光推送
  2. idea git提交代码
  3. MUI 九宫格改造成六宫格
  4. OPPO 一加 真我 各种锁定 关闭失败 手撕 vivo iQOO 各种锁定 手撕
  5. 了解主板机箱开机跳线
  6. 关于vue启动项目报错
  7. Mybatis学习之数据库字段与实体属性的映射
  8. 第二章 编程练习(C++ Primer Plus)
  9. 英语时态:特殊疑问句(10个句子练到极致,不能有停顿连续三遍)
  10. 使用vue做一个“淘宝“项目(显示商品栏)