日期:2018-03-06 14:32:51
作者:Bay0net


0x01、 前言

  在一般情况下,几个网站可能会放在同一个服务器上,或者几个 web 系统共享一个服务器,host 头来指定应该由哪个网站或者 web 系统来处理用户的请求。

0x02、密码重置漏洞

#!php
$user -> hash = random::hash() ; $message -> confirm_url = url::abs_site("password/do_reset?key=$user->hash") ;

漏洞存在于 url::abs_site

这一部分使用的Host header是来自用户重置密码的请求,攻击者可以这么来攻击

  1. 攻击者向服务器发送一个带有 attacker-controlled 的 host 头类型的密码重置
  2. 服务器在生成密码重置的 key 时,会把攻击者操控的 host 也放到密码重置链接中。
  3. 用户如果点击了密码重置链接,那么攻击者就能得到密码重置的 key,从而重置用户密码。

0x03、缓存污染

Varnish 是通过最先到达的请求的host header来辨别host的,
Apache 是看所有请求的host,
Nginx 只是看最后一个请求的host。

攻击方法

GET / HTTP/1.1
Host: example.com
Host: alert(xss)

可以用上面这种方法,来欺骗 Varnish ,达到污染的目的。

攻击者提交上面的请求之后,缓存服务器会把数据放到缓存中,有人再访问 example.com 时,服务器会把 alert(xss) 也返回给用户。

0x04、修复方案

在服务器端判断 host 的值,设置白名单,不在白名单内的直接403

【漏洞学习】HOST 头攻击漏洞的更多相关文章

  1. URL存在跨站漏洞http host头攻击漏洞解决方案

    最近项目部署的时候客户使用的绿盟扫描出一些漏洞,老大让我处理,经过看大神的博客等方式,分享一些简单的解决方法. 一 跨网站脚本 跨网站脚本(Cross-site scripting,通常简称为XSS或 ...

  2. 目标URL存在跨站漏洞和目标URL存在http host头攻击漏洞处理方案

    若需要学习技术文档共享(请关注群公告的内容)/讨论问题 请入QQ群:668345923 :若无法入群,请在您浏览文章下方留言,至于答复,这个看情况了 目录 HTTP协议详解 引言 一.HTTP协议详解 ...

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

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

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

    检测到目标URL存在http host头攻击漏洞 1.引发安全问题的原因 为了方便的获得网站域名,开发人员一般依赖于HTTP Host header.例如,在php里用_SERVER["HT ...

  5. URL存在http host头攻击漏洞-修复方案

    URL存在http host头攻击漏洞-修复方案 spring boot使用注解的方式 -- 第一步:在自定义filter类上添加如下注释 package com.cmcc.hy.mobile.con ...

  6. 【漏洞一】检测到目标URL存在http host头攻击漏洞

    [漏洞] 检测到目标URL存在http host头攻击漏洞 [原因] 在项目中使用了 request.getServerName 导致漏洞的出现 不要使用request中的serverName,也就是 ...

  7. http host头攻击漏洞

    原文地址: https://www.zhuyilong.fun/tech/handel_httphost_attack.html 漏洞描述 为了方便的获得网站域名,开发人员一般依赖于HTTP Host ...

  8. (三)Host头攻击

    01 漏洞描述 为了方便获取网站域名,开发人员一般依赖于请求包中的Host首部字段.例如,在php里用_SERVER["HTTP_HOST"].但是这个Host字段值是不可信赖的( ...

  9. 【由浅入深_打牢基础】HOST头攻击

    [由浅入深_打牢基础]HOST头攻击 前几天一直准备别的事情,然后用了2/3天时间去挖了补天某厂的SRC,还是太菜了,最后提交了一个低危(还没出结果,还有点敏感信息泄露,感觉略鸡肋也没交),不过偶然发 ...

随机推荐

  1. Delphi 变量

  2. 去除多余的Merge branch提交

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/xuexingyang/article/d ...

  3. yum 问题

    [root@localhost ~]# yum update There are no enabled repos. Run "yum repolist all" to see t ...

  4. super、this关键字

    super调用(父类) 调用方法   语法: super.父类方法名(形参列表);        可以在子类方法和构造器中使用,调用父类被覆盖的方法. 实例变量 语法: super.父类实例变量名;  ...

  5. java面试(进程和线程)04

    1.并行和并发有什么区别? 并行:多个处理器或多核处理器同时处理多个任务. 并发:多个任务在同一个 CPU 核上,按细分的时间片轮流(交替)执行,从逻辑上来看那些任务是同时执行. 2.线程和进程的区别 ...

  6. AI换脸教程:DeepFaceLab使用教程(2.训练及合成)

    如果前期工作已经准备完毕(DeepFaceLab下载(https://www.deepfacelabs.com/list-5-1.html),然后安装相应的显卡驱动,DeepFaceLab使用教程(1 ...

  7. idea控制台搜索框

    https://blog.csdn.net/honnyee/article/details/82772948

  8. Linux系统中的硬件问题如何排查?(3)

    Linux系统中的硬件问题如何排查?(3) 2013-03-27 10:32 核子可乐译 51CTO.com 字号:T | T 在Linux系统中,对于硬件故障问题的排查可能是计算机管理领域最棘手的工 ...

  9. 【BZOJ 3681】Arietta

    传送门 题目描述 Arietta 的命运与她的妹妹不同,在她的妹妹已经走进学院的时候,她仍然留在山村中. 但是她从未停止过和恋人 Velding 的书信往来.一天,她准备去探访他. 对着窗外的阳光,临 ...

  10. ios获取系统当前日期并以一定格式显示

    NSDate *date=[NSDate date]; NSDateFormatter *dateformatter=[[NSDateFormatter alloc] init]; [dateform ...