PortSwigger网络缓存欺骗(1)

发布时间:2026/10/20 15:10:10

PortSwigger网络缓存欺骗(1) 实验利用路径映射欺骗网页缓存要完成这个实验你需要知道正则表达式端点如何将 URL 路径映射到资源。如何检测和利用缓存服务器和源服务器映射 URL 路径方式的差异。使用以下凭据登录您自己的帐户wiener:peter登录后便可以repeter账户页面根据以下url请求开始测试/my-account ↓ /my-account/abc ↓ /my-account/abc.js先发送正常请求再发送对/my-account/abc的请求之后可以发送对/my-account/abc.js的请求可以发现出现两个非常关键的响应头Cache-Control和X-Cache解释下X-Cache: missmiss表示这次响应没有从缓存中拿而是去后端服务器重新获取的。可以理解成浏览器 │ │ GET /my-account/abc.js ▼ CDN / 缓存服务器 │ │ 没找到缓存 → MISS ▼ 后端服务器 │ │ 返回响应 ▼ CDN缓存服务器 │ │ 把响应缓存起来 ▼ 浏览器所以第一次访问的目的并不是攻击而是建立基准。Cache-Control: max-age30这个响应头表示如果缓存服务器缓存了这个响应那么它可以在30 秒内直接使用这个缓存响应。所以第一次请求 ↓ MISS ↓ 后端生成响应 ↓ 缓存服务器保存响应 ↓ 有效期 30 秒这就给了我们一个实验条件30 秒内再次请求同一个缓存键有可能不再访问后端而直接拿缓存。30 秒内再次发送再次发送GET /my-account/abc.js HTTP/1.1 Host: example.com结果X-Cache: hit这非常关键。hit意味着这次响应直接来自缓存。流程变成浏览器 │ │ GET /my-account/abc.js ▼ 缓存服务器 │ │ 找到之前缓存的结果 │ │ HIT ▼ 直接返回缓存内容后端甚至可能没有参与这次请求。理解为什么/my-account/abc.js会被缓存这里才是这个实验的核心。正常情况下/my-account/明显是一个动态、私密页面。例如GET /my-account/可能返回h1Welcome, Alice/h1 pEmail: aliceexample.com/p这种内容通常不应该被公共缓存。但是你构造了/my-account/abc.js虽然实际上/my-account/abc.js并不一定真的存在。问题在于缓存服务器可能只看 URL 后缀它可能看到/my-account/abc.js ↑ .js然后认为.js是静态资源应该可以缓存。于是缓存服务器按照类似这样的规则如果 URL 以 .js 结尾 ↓ 认为是静态资源 ↓ 允许缓存但是后端服务器怎么看后端服务器可能没有把/my-account/abc.js当成一个真正的 JavaScript 文件。它可能通过路由机制把它解释成/my-account/或者/my-account/xxx也就是说缓存服务器和后端服务器对同一个 URL 的理解不一样这是整个漏洞的关键。可以画成/my-account/abc.js │ ┌──────────┴──────────┐ │ │ ▼ ▼ 缓存服务器 后端服务器 │ │ 看 URL 后缀 看应用路由 │ │ .js文件 /my-account │ │ ▼ ▼ 可以缓存 私人账户页面于是出现了一个危险情况缓存服务器 /my-account/abc.js ↓ 静态 JS 文件 ↓ 可以缓存 后端服务器 /my-account/abc.js ↓ /my-account ↓ 用户私人数据推理链① /my-account/abc.js ↓ ② 第一次请求 ↓ ③ X-Cache: miss ↓ ④ Cache-Control: max-age30 ↓ ⑤ 说明响应可以被缓存 ↓ ⑥ 30秒内再次请求 ↓ ⑦ X-Cache: hit ↓ ⑧ 证明该 URL 已经进入缓存 ↓ ⑨ 为什么 ↓ ⑩ 缓存可能根据 .js 判断它是静态资源 ↓ ⑪ 但后端可能把它当成 /my-account 动态页面 ↓ ⑫ 缓存层和后端对 URL 的解释产生差异 ↓ ⑬ 可能形成 Web Cache Deception完成实验点击go to exploit server 在body中插入我们想要对用户的网络欺骗代码欺取缓存session后登入账户拿到专属apiscriptwindow.locationhttps://0aea003004e6a85b80a50863004900f5.web-security-academy.net/my-account/xzy.js/script点击Deliver exploit to victim算是发送给用户然后访问以下urlhttps://0aea003004e6a85b80a50863004900f5.web-security-academy.net/my-account/xzy.js获得用户的api key 将其复制提交至submit solution 即可攻克工程极短 但是想要完全理解如何一步一步检测出缓存欺骗的可行性需要花些时间与理解我的攻克过程没能完成hit 可以参考以下视频借鉴学习https://www.youtube.com/watch?v9kGF1O9jyaA
延伸阅读

更多相关文章

2026/10/19 17:41:13

基于SpringBoot的零食购物网站的设计与实现源码+文档

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/10/20 15:09:59

XZ Utils后门事件复盘:从SSH登录异常到供应链攻击

3 月底的邮件列表上,一个看起来再普通不过的问题帖引起了我的注意。发帖者说自己在升级了某个系统包之后,通过 SSH 登录服务器的耗时从几十毫秒涨到了五百毫秒以上,同时 sshd 的 CPU 占用明显偏高。他试着回退了 XZ Utils 的版本,…

2026/10/20 15:09:59

深度学习入门首选PyTorch:从动态图、Tensor到模型部署的完整实战

最近连续被好几拨人问到同一个问题:刚接触深度学习,到底先学哪个框架?我的答案一直很干脆——PyTorch。这个结论不是我拍脑袋定的,而是这几年从写模型、调bug到做部署一路用下来的真实体感。PyTorch的调试体验、生态完整度和上手顺…

2026/10/20 15:09:59

Antigravity配额优化:外部Skill集成Codex与Claude

如果你最近在折腾 Codex 或 Claude Code,应该已经感觉到:模型能力不是瓶颈,配额才是。我这边的情况更具体——团队里的自动化任务经常要调 Antigravity 去跑 Agent 工作流,而 Antigravity 的平台配额又会和 Codex / Claude Code 的…

2026/10/20 15:09:59

帕鲁杯应急响应赛题复盘:从日志溯源到后门清除的完整实战

第二届帕鲁杯的应急响应主线赛题,是知攻善防实验室出的。这个系列赛题在圈里口碑一直不错,原因很简单:它不搞花架子,模拟的就是一个真实被入侵的业务系统,选手要做的就是把攻防双方遗留的痕迹一点点拼起来。我今年完整…

2026/10/20 15:04:58

sqli-labs第11-45关实战:POST注入、宽字节与堆叠注入全解析

sqli-labs是我见过最适合练SQL注入手感的靶场,没有之一。它不像某些综合漏洞环境那样追求大而全,而是把每一种注入类型拆成一课一课的关卡,从最简单的GET单引号注入,一路做到二次注入、宽字节、堆叠,难度曲线非常平滑。…

2026/10/19 18:06:35

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/20 1:05:37

单片机C运行时从启动到多任务:中断安全与共享资源冲突

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:05:37

GCC编译四步详解:预处理、编译、汇编、链接实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:05:37

FIW线是什么?FEP注塑线与普通氟塑料线的区别及应用指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑