某不知名博客 某不知名博客
首页
  • 《vulcat文档》
  • Web安全

    • 《BurpSuite及官方实验室》
    • 《OSWE学习历程》
  • 云原生安全

    • 《Docker命令大全》
    • 《CKS考试学习指南》
    • 《旧-Kubernetes教程》
漏洞库
  • 《渗透工具大全》
  • 《云安全》
事件库
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Carsaid

安全界的小学生
首页
  • 《vulcat文档》
  • Web安全

    • 《BurpSuite及官方实验室》
    • 《OSWE学习历程》
  • 云原生安全

    • 《Docker命令大全》
    • 《CKS考试学习指南》
    • 《旧-Kubernetes教程》
漏洞库
  • 《渗透工具大全》
  • 《云安全》
事件库
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 前言

  • 服务器端主题(翻译)

  • 客户端主题(翻译)

  • 高级主题(翻译)

  • 扩展阅读(翻译)

  • 个人学习笔记

  • 实验室做题记录

    • 实验室做题记录
    • 服务器端

    • 客户端

    • 高级主题

      • 不安全的反序列化

      • GraphQL API漏洞

      • 服务端模板注入

      • Web缓存投毒

        • 从业者-缓存设计缺陷-使用无键标头的Web缓存投毒
        • 从业者-缓存设计缺陷-通过无键的Cookie进行Web缓存投毒
        • 从业者-缓存设计缺陷-多标头Web缓存投毒
          • 题目
          • 实操
            • 双标头造成了有毒的重定向
            • 利用资源导入(毒害js文件)
        • 从业者-缓存设计缺陷-使用未知标头的定向Web缓存投毒
        • 专家-缓存设计缺陷-通过严格的缓存标准来利用DOM漏洞
        • 专家-缓存设计缺陷-组合Web缓存投毒漏洞
        • 从业者-缓存实现缺陷-无键查询字符串
        • 从业者-缓存实现缺陷-无键查询参数
        • 从业者-缓存实现缺陷-参数伪装
        • 从业者-缓存实现缺陷-畸形GET请求
        • 从业者-缓存实现缺陷-URL规范化
        • 专家-缓存实现缺陷-缓存键注入
        • 专家-缓存实现缺陷-内部缓存投毒
      • HTTP主机头攻击

      • HTTP请求走私

      • OAuth身份验证漏洞

      • JWT攻击

      • 原型链污染

  • BurpSuite及官方实验室
  • 实验室做题记录
  • 高级主题
  • Web缓存投毒
carsaid
2023-12-20
目录

从业者-缓存设计缺陷-多标头Web缓存投毒

# 实验室:多标头 Web 缓存投毒

# 题目

此实验室包含一个 Web 缓存投毒漏洞,仅当你使用多个标头构建恶意请求时,该漏洞才可被利用。用户大约每分钟访问一次主页。要解决此实验,请毒害缓存响应,并在访问者的浏览器中执行alert(document.cookie)。

提示

此实验室支持X-Forwarded-Host和X-Forwarded-Scheme标头。

实验室-从业者

多标头 Web 缓存投毒 >>

- name: 实验室-从业者
  desc: 多标头 Web 缓存投毒 >>
  avatar: https://fastly.statically.io/gh/clincat/blog-imgs@main/vuepress/static/imgs/docs/burpsuite-learn/public/lab-logo.png
  link: https://portswigger.net/web-security/web-cache-poisoning/exploiting-design-flaws/lab-web-cache-poisoning-with-multiple-headers
  bgColor: '#001350'
  textColor: '#4cc1ff'
1
2
3
4
5
6

# 实操

点击 “ACCESS THE LAB” 进入实验室。

Not Found Image

一个购物站点。

Not Found Image

# 双标头造成了有毒的重定向

捕获一个首页的请求数据包,发现该页面具有缓存,缓存时效为30秒。

根据题目中的提示,添加X-Forwarded-Host标头并再次发送请求,没有发生任何事情......

Not Found Image

根据提示,再添加X-Forwarded-Scheme标头,值为http,发送请求。

在第二个标头的作用下,请求发生了跳转。目标服务器以为客户端正在通过 HTTP 协议访问站点,强制将请求跳转至 HTTPS 协议。

在标头X-Forwarded-Host的作用下,将要跳转的目标域变为了相应的值qweasdzxc。

一个值得注意的地方,该响应具有缓存!缓存时效为30秒。

Not Found Image

除了控制跳转的域名以外,还可以控制路径。

(经过测试,当X-Forwarded-Scheme标头的值为https时不会发生任何事情)

Not Found Image

访问漏洞利用服务器,将路径设置为你喜欢的值,例如/exploit/。

同时,由于此次的漏洞不是 “在原站点上导入恶意资源”,而是 “跳转至恶意站点”。

  • 所以要将响应标头Content-Type从text/javascript修改为text/html
  • 并为正文的alert()添加script标签,使其作为 HTML 的一部分来执行

记得点击 “Store” 保存。

Not Found Image

测试一下配置,访问漏洞利用 URL,成功触发了alert()。

Not Found Image

接着,将X-Forwarded-Host标头的值修改为恶意 URL,然后发送请求,尝试毒害缓存。

没有发生跳转,X-Forwarded-Host貌似不能带有协议https://。

Not Found Image

将协议去掉,只保留域名和路径,再次发送请求,尝试毒害缓存。

响应标头Location将客户端重定向到了我们的恶意域。响应标头Age从0开始,说明生成了新的缓存响应。(图片里的Age已经到了8,说明距离失效还剩22秒)

Not Found Image

此时如果你访问实验室主页,则会被重定向至恶意域,并执行alert()。

Not Found Image

以下是一个动图,演示了受害者访问主页时的视角:

Not Found Image

我查看了访问记录,受害者明明被重定向了,也访问了恶意路径。

可实验室依然没有得到解决,难道我遗漏了什么?

Not Found Image

# 利用资源导入(毒害js文件)

一番寻找,发现网站主页会导入一个 js 文件。

Not Found Image

请求该 js 文件,发现也存在 “有毒的重定向” 问题。

Not Found Image

好吧,访问漏洞利用服务器,将路径修改为/resources/js/tracking.js。

  • 由于该路径将被作为 js 资源提供,所以将Content-Type标头的text/html重新改为text/javascript
  • 为正文中的alert()去掉script标签,保留纯 js 代码

记得点击 “Store” 保存。

Not Found Image

此次的X-Forwarded-Host标头只需要提供恶意域,不需要提供路径,因为跳转时会自动加上 js 文件的路径。

毒害 js 文件,确保Location跳转到了我们的恶意域,根据Age判断是否生成了新缓存。

Not Found Image

此时,如果你访问网站主页,则会命中有毒的缓存响应,导入恶意 js 资源并执行其中的alert。

Not Found Image

来分析下请求。

第一个请求,受害者访问网站主页,主页会加载所需的 js 文件。

Not Found Image

第二个请求,主页请求并加载所需的 js 文件。但这个 js 文件已经被我们提前毒害,所以请求会命中有毒的缓存响应,被重定向至恶意域。

Not Found Image

第三个请求,主页的资源加载请求 被 重定向至恶意域,然后加载了恶意域上的 js 文件资源,并在主页上执行了恶意 js 代码alert()。

Not Found Image

实验完成。

Not Found Image
编辑 (opens new window)
从业者-缓存设计缺陷-通过无键的Cookie进行Web缓存投毒
从业者-缓存设计缺陷-使用未知标头的定向Web缓存投毒

← 从业者-缓存设计缺陷-通过无键的Cookie进行Web缓存投毒 从业者-缓存设计缺陷-使用未知标头的定向Web缓存投毒→

最近更新
01
API测试笔记
04-30
02
msfvenom
03-29
03
Metasploit
03-29
更多文章>
Theme by Vdoing | Copyright © 2023-2024 Carsaid | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式