01 漏洞描述


《HTTP | HTTP报文》最后一节,简单的介绍了一下首部字段,其中就包含了Host首部字段。

为了方便获取网站域名,开发人员一般依赖于请求包中的Host首部字段。例如,在php里用_SERVER["HTTP_HOST"]。但是这个Host字段值是不可信赖的(可通过HTTP代理工具篡改),如果应用程序没有对Host字段值进行处理,就有可能造成恶意代码的传入。

02 漏洞知识拓展


Host首部字段是HTTP/1.1新增的,旨在告诉服务器,客户端请求的主机名和端口号,主要用来实现虚拟主机技术。

运用虚拟主机技术,单个主机可以运行多个站点。以下图为例,hacker和usagidesign两个站点都运行在同一服务器A上,不管我们请求哪个域名,最终都会被解析成服务器A的IP地址,这个时候服务器就不知道该将请求交给哪个站点处理,因此需要Host字段指定请求的主机名。

我们访问hacker域名,经DNS解析,变成了服务器A的IP,请求传达到服务器A,A接收到请求后,发现请求报文中的Host字段值为hacker,进而将请求交给hacker站点处理。(这里又涉及到计算机网络知识了,是不是觉得要学的真多?没关系,我后面都会一一介绍的)

这个时候,问题就出现了。为了方便获取网站域名,开发人员一般依赖于请求包中的Host首部字段。例如,在php里用_SERVER["HTTP_HOST"]。但是这个Host字段值是不可信赖的(可通过HTTP代理工具篡改),如果应用程序没有对Host字段值进行处理,就有可能造成恶意代码的传入。

03 漏洞检测


Host头攻击漏洞的检测比较简单,只需要抓包,修改Host字段值,提交,查看响应中是否包含修改后的Host字段值即可。

下面我分三个场景,介绍一下Host头攻击漏洞存在的表现。

跳转

场景一:正常请求,响应302,Location首部字段指明跳转的地址,其中Location字段值为Host字段指定的地址。

将请求包的Host字段值修改为www.baidu.com提交,响应包中的Location地址也被更改为www.baidu.com。

拼接

场景二:正常请求,正常响应,将Host字段值拼接到标签属性值中。

将请求包的Host字段值修改为www.baidu.com提交,发现服务器将www.baidu.com拼接到了script标签的src属性值中。

代码注入

场景三:这其实也属于拼接,只不过在场景二的基础上写入了恶意代码。

利用Host字段写入script标签,弹出警告框。

04 漏洞修复


对Host字段进行检测。

Nginx,修改ngnix.conf文件,在server中指定一个server_name名单,并添加检测。

Apache,修改httpd.conf文件,指定ServerName,并开启UseCanonicalName选项。

Tomcat,修改server.xml文件,配置Host的name属性。

05 免责声明


安全小白团是帮助用户了解信息安全技术、安全漏洞相关信息的微信公众号。安全小白团提供的程序(方法)可能带有攻击性,仅供安全研究与教学之用,用户将其信息做其他用途,由用户承担全部法律及连带责任,安全小白团不承担任何法律及连带责任。

每日漏洞 | Host头攻击相关推荐

  1. 检测到目标URL存在http host头攻击漏洞

    一.前言 漏洞描述:为了方便的获得网站域名,开发人员一般依赖于HTTP Host header.例如,在php里用_SERVER["HTTP_HOST"].但是这个header是不 ...

  2. 漏洞解决方案-Http host头攻击

    漏洞解决方案-Http host头攻击 漏洞概述 解决方案 漏洞概述 为了方便的获得网站域名,开发人员一般依赖于HTTP Host header.例如,在php里用_SERVER["HTTP ...

  3. java host头攻击漏洞_Java Web项目漏洞:检测到目标URL存在http host头攻击漏洞解决办法...

    检测到目标URL存在http host头攻击漏洞 详细描述 为了方便的获得网站域名,开发人员一般依赖于HTTP Host header.例如,在php里用_SERVER["HTTP_HOST ...

  4. 【漏洞笔记】Host头攻击

    0x00 概述 漏洞名称:Host头攻击 风险等级:低 问题类型:管理员设置问题 0x01 漏洞描述 Host首部字段是HTTP/1.1新增的,旨在告诉服务器,客户端请求的主机名和端口号,主要用来实现 ...

  5. 检测到目标URL存在http host头攻击漏洞,修复方案:在Web服务器防止Host头攻击

    一.前言 漏洞描述:为了方便的获得网站域名,开发人员一般依赖于HTTP Host header.例如,在php里用_SERVER["HTTP_HOST"].但是这个header是不 ...

  6. HTTP Host 头攻击,是什么鬼?

    欢迎关注方志朋的博客,回复"666"获面试宝典 1. HTTP Host头攻击 从HTTP / 1.1开始,HTTP Host标头是必需的请求标头.它指定客户端要访问的域名.例如, ...

  7. HTTP Host 头攻击,这是什么鬼?

    欢迎关注方志朋的博客,回复"666"获面试宝典 1. HTTP Host头攻击 从HTTP / 1.1开始,HTTP Host标头是必需的请求标头.它指定客户端要访问的域名.例如, ...

  8. HTTP Host 头攻击

    来源:https://blog.csdn.net/angry_program 1. HTTP Host头攻击 从HTTP / 1.1开始,HTTP Host标头是必需的请求标头.它指定客户端要访问的域 ...

  9. 网络安全:HTTP Host 头攻击相关知识介绍

    1. HTTP Host头攻击 从HTTP / 1.1开始,HTTP Host标头是必需的请求标头.它指定客户端要访问的域名.例如,当用户访问https://example.net/web-secur ...

最新文章

  1. Hibernate干系映照小结
  2. android build系统
  3. linux 查看 全部网卡 虚拟网卡 物理网卡
  4. 5v可编程rgb接口_电脑的各个接口详解,不懂电脑的白小必备干货知识
  5. JS组件系列——封装自己的JS组件,你也可以
  6. c语言 int top,顺序栈(C语言,静态栈)
  7. Python基础——数据分析考核(基础版本)
  8. java 多线程同步
  9. (2) pandas 文件读写 (csv)
  10. “BASH: FORK: RESOURCE TEMPORARILY UNAVAILABLE”的解决方案
  11. C语言基础教程之enum
  12. python open函数用法_python中open函数的用法详解
  13. android rfid 数据解析_基于RFID技术的标签数据完整性与安全性解析
  14. 调焦后焦实现不同距离成像_可调焦自适应光学扫描激光眼底成像系统设计
  15. 用excel打开txt文件
  16. excel条件格式标记一整行
  17. 【JZOJ B组】【NOIP2013模拟】Heaven Cow与God Bull
  18. php教育网站设计案例_课程教学网站的设计与实现(MySQL)(含录像)
  19. python选择哪个版本-Python下载哪个版本比较好?
  20. 守望先锋打开黑屏闪退,已经重装过好几次都没用? 真正原因在这里

热门文章

  1. 随机猜数 用Java 实现的数字小游戏
  2. 【愚公系列】2022年10月 微信小程序-优购电商项目-商品分类
  3. Sharepoint构建轻量型应用之InfoPath的简单应用案例!
  4. 嵌入式linux音频驱动及简单播放器的设计与实现,嵌入式Linux音频驱动及简单播放器的设计与实现...
  5. JAVA防止CRLF攻击_CRLF攻击的一篇科普:新浪某站CRLF Injection导致的安全问题(转)...
  6. 汇编中的assume
  7. 二本计算机考北邮难度,考北邮研究生难度大吗?
  8. 树莓派B4安装教程(win10专业版,无显示器鼠标键盘)
  9. 陌陌开始移动直播,它和那些竞品们有何不同?
  10. 初识Linux系统编程(伍)-----权限的魅力(附面试常见问题,千字精品)