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

前几天一直准备别的事情,然后用了2/3天时间去挖了补天某厂的SRC,还是太菜了,最后提交了一个低危(还没出结果,还有点敏感信息泄露,感觉略鸡肋也没交),不过偶然发现之前提的一个公益SRC被收了(当时快半个月都没人处理)不过没money,等过几天有时间再看吧,还是得虚心学技术,慢慢的进步。

1. HOST头的作用

微信公众号:小惜渗透,欢迎大佬一起交流进步

1.1 文字原理讲解

首先我们需要了解一个概念叫虚拟主机,也就是一台服务器上存在多个网站。你会想这还不简单,每个站点分一个端口即可,但是我说的是一个端口。

既然如此,那么我们不管它是怎么实现的,我们要关注的是为什么如此,为什么我们访问这些网站均是正常的呢?这就是HOST头的作用了,当我们去访问一个url的时候,这个域名只会被DNS解析为IP,但是因为这些虚拟主机的IP是同一个,所以会看我们的HOST头,它的值是谁,那么服务器就去交给那个站去响应。(如下图)

image-20220608134349633

1.2 实际演示

我这里用小皮面板再来演示一下它的奇妙之处,首先我先创建两个站点,分别是pikachu和dvwa,配置如下图。

image-20220608135012232 image-20220608135031215

可以看到,这时候我给它们不同的域名,而且端口均为本机的80,好,接下来我去访问。

image-20220608135147488 image-20220608135153094

两个站点没有任何问题,紧接着我重新访问dvwa并抓包

image-20220608144116741

再来看一下页面

image-20220608144151455

OK相信到这里就了解了,HOST头的作用了,接下来,围绕着Burp Suite官方实验室,演示下会发生的安全问题


2. 漏洞利用

2.1 基本密码重置中毒

要求如下:

image-20220608145041353

我们需要登录到Carlos才可以完成,登录时点击忘记密码

image-20220608145206659

可以看到是根据我们的账户名或邮箱地址,发一封重置密码的邮件给我们

image-20220608145241705

我们先用自己的账户,也就是wiener来试试,ok,点击后去漏洞利用服务器试试

image-20220608145617649

往下翻有个Email client,点进去查看刚刚的邮件内容

image-20220608145609138

看到有个修改密码连接,ok,我们打开它,并随便修改成123

image-20220619163246817 image-20220608145900506

接下来我们去Burp看下刚刚的数据包,如下,可以看到里面存在一个temp-forgot-password-token值,所以我们现在需要搞到它。

POST /forgot-password?temp-forgot-password-token=F7vqHnRQVDFVZwEfG8CjqPOx4gwgMGr2 HTTP/1.1
Host: ac3d1fxxxxxx060.web-security-academy.net
Cookie: _lab=46%7cMasdCwCFAiRGPkiVdxxxNhS8mYDOMvkk3CWJakAhR0wUzpasdGqNbbKzMESDTwqnN4%2bmfnDv415Yp1OeYCQWOHaYTqDhOeWLYsbDczuZvkT8kfY2yqQxeqN9CdAsyGMC7FUxTGUuUMjnXEJlyJaZ1ArCyi5xbmznovOWg2psOzMjkzQnGNekasdzgthyY%3d; session=jcqZVUOp3gtGaRpFeBD7r577ERV38AkV7
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 135
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Te: trailers
Connection: close csrf=KmpFXtDQMQuzxEkE0t8LRYxfT698ibN1&temp-forgot-password-token=F7vqHnRQVDFVZwEfG8CjqPOx4gwgMGr2&new-password-1=123&new-password-2=123

接下来我的猜想就来了,既然我们知道漏洞肯定跟HOST头注入有关,那么我猜我们刚刚点击忘记密码,发包的时候肯定是抓不到这个token的,而是网站后端服务器发送到我们的邮箱,但是这个时候如果我们将HOST头改成我们自己利用服务器,那么流量会不会就会到我们这里,然后根据这个token值构造重置密码链接,ok,说干就干。

image-20220619163138663

紧接着去我们漏洞利用服务器查一下token

image-20220608151427869

构造重置密码链接,直接将我们重置密码的包里面的csrf (值在上上个图中)和temp-forgot-password-token值改成对应的,然后成功了

image-20220608152531500


2.2 主机标头身份验证绕过

要求如下:

image-20220608161747546

既然要进入管理面板,那么首先我们应该找到路径,随手加一个admin,演示仅对本地用户可用

image-20220619163056154

一般我们搭建靶场用的最多的就是localhost,同理这里将HOST头改为localhost

image-20220608162732093

直接删除,同样还得抓包改HOST

image-20220608162912147


2.3 通过模糊请求导致 Web 缓存中毒

要求如下:

image-20220619163031177

利用过程:

这个我盲猜可能就就是web缓存投毒并且非缓存建是HOST,相信看到我之前那篇文章的兄弟一下就懂了,就是web缓存投毒,投到HOST键上

首先刷新一下观察历史包,发现加载了两个js

image-20220619163858150

存在缓存机制

image-20220619163938866

那我现在漏洞利用服务器构造一下js文件

image-20220619164331866

ok,改一下HOST,投毒吧

image-20220619165421749

改了发现不可以,那么也就不能在原来基础上修改,那就尝试在原来基础上增加,双写HOST

image-20220619165540252

可以看到加载我们利用服务器的js了,这个时候正常如何访问就会中毒了

image-20220619173820386


2.4 基于路由的 SSRF

要求如下:

image-20220619173951042

利用过程:

首先这里提示了,必须使用Burp Collaborator来进行测试,如果不知道它是什么,可以百度,我暂时没找到好文章,后续打算就其使用写个帖子,这里先简单理解成dnslog就好了,数据由Burp->靶机,靶机响应到Burp Collaborator再到Burp,也就是说它的内网靶机不会出网,除非是Burp自带Burp Collaborator地址,所以我们需要配置一下

点击Burp->Burp Collaborator client出现下图界面,点击Copy to clipboard来获取一个随机地址

image-20220619215636812

然后可以在Project options里面查看一下,我们这里使用默认的Collaborator的server就好

image-20220619221018445

尝试SSRF漏洞,将访问实验室主页的包的HOST头改成我们的Collaborator server地址,然后发包,然后就可以看到Collaborator server存在流量,然后就可以关掉Collaborator了

image-20220619221233374

证明存在SSRF漏洞,可通过HOST值访问内部敏感系统,但是不知道IP,所以直接爆破,如下图设置

image-20220619174730976

别忘了关掉自动更新Header功能

image-20220619221528007

Payload设置如下

image-20220619174835235

这里因为没特殊字符,所以paylaod Encoding勾不勾没关系,直接爆破,130被爆破成功

image-20220619221621267

然后我们访问主页并抓包将HOST改成192.168.0.130然后放出去,同样的删除用户的这个POST包也需要将HOST改为192.168.0.130

image-20220619221949746

成功了

image-20220619222022811


2.5 SSRF 通过有缺陷的请求解析

要求:

image-20220619222536993

利用过程:

这题拿到手很懵圈,感觉跟上一个一样,于是按照上一个的做法将HOST先改成Collaborator Server的地址,发现返回403,并且Collaborator Server无解析

image-20220619222925187

既然如此,再看一下要求,基于路由的这几个大字出现在眼前的时候,就应该意识到是路由地址的问题,于是尝试将GET / 改成绝对的

image-20220619223244507

非常nice,然后就跟上边一样了,爆破,251

image-20220619223436312

删除用户,像下边这样改包(请求admin目录的和删除用户的都类似)

image-20220619224113256

成功

image-20220619224124325

【由浅入深_打牢基础】HOST头攻击的更多相关文章

  1. # 【由浅入深_打牢基础】WEB缓存投毒(上)

    image-20220611092344882 [由浅入深_打牢基础]WEB缓存投毒(上) 1. 什么是WEB缓存投毒 简单的来说,就是利用缓存将有害的HTTP响应提供给用户 什么是缓存,这里借用Bu ...

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

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

  3. (三)Host头攻击

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

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

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

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

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

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

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

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

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

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

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

  9. 【漏洞学习】HOST 头攻击漏洞

    日期:2018-03-06 14:32:51 作者:Bay0net 0x01. 前言 在一般情况下,几个网站可能会放在同一个服务器上,或者几个 web 系统共享一个服务器,host 头来指定应该由哪个 ...

随机推荐

  1. LC-19

    19. 删除链表的倒数第 N 个结点 思路基本直接出来,双指针,IndexFast 和 IndexSlow 中间相隔 N - 1, 这样 IndexFast 到了最后,IndexSlow 自然就是倒数 ...

  2. 帝国CMS网站地图生成插件

    可以生成电脑端也可以生成手机端的地图XML. 安装方法: 这个帝国sitemap插件的安装跟其他插件的安装方式一样,介于可能有人不会安装帝国的插件,就写一下吧,以后你们如果碰到帝国插件也可以参考这个. ...

  3. Flutter 打印日志封装及创建Live Templates快捷打印日志

    只需要输入logi 就可出现以下代码 /// tag(类名.函数名)LogUtil.i(index, tag: '_MyHomePageState.onItemClick:');打印日志效果如下: 实 ...

  4. 2021-ACM-ICPC-济南站 K Search For Mafuyu 【树的遍历与回溯,dfs, 邻接表】

    PAT 题目详情 (pintia.cn) 题目 题意描述 n个房间, 有n-1个通道, kanade初始在1,Mafuyu 位置未知,求K到M的最小期望,也就是到每个地方的平均值,注意的是这里的求法, ...

  5. Edu CF 103 Div. 2 (A. K-divisible Sum, B. Inflation贪心),被黑客攻了,,惨掉rank, 思维除法与取余, 不太擅长的类型

    2021-01-29 题目链接: Educational Codeforces Round 103 (Rated for Div. 2) 题目 A. K-divisible Sum You are g ...

  6. php个人博客搭建第二阶段②

    网站正文部分:热门博客的推荐: html代码: <!-- 网站正文部分 -->     <div class="content">         < ...

  7. python中常用内置函数和关键词

    Python 常用内置函数如下: Python 解释器内置了很多函数和类型,您可以在任何时候使用它们.以下按字母表顺序列出它们. 1. abs()函数 返回数字的绝对值. print( abs(-45 ...

  8. Java 18 新特性:简单Web服务器 jwebserver

    在今年3月下旬的时候,Java版本已经更新到了18.接下来DD计划持续做一个系列,主要更新从Java 9开始的各种更新内容,但我不全部都介绍,主要挑一些有意思的内容,以文章和视频的方式来给大家介绍和学 ...

  9. 关于C++类定义中不能声明该类对象,而Java中可以的原因

    相信接触过C++的人,在学习Java的过程当中,会遇到这样一个问题:在Java中常常会在类定义中声明一个该类的对象(例如Person类定义中声明一些叫parents之类的Person对象),但是在C+ ...

  10. 设置 Visual Studio 总是以管理员身份运行

    话不多说直接上干货 第一步: 打开 Visual Studio 的安装目录,找到 devenv.exe,然后右键快捷菜单选择"兼容性疑难解答". 第二步: 选择故障排查选项 疑难解 ...