发布时间:2026/8/29 18:47:41
PortSwigger网络缓存欺骗(4) 这是第四期的网络缓存欺骗为了防止大家的头脑已经转不过来了今天再来重新梳理下并区分下缓存静态路径与缓存静态资源“静态资源”一种让缓存服务器认为“这个响应可以缓存”的特征。/resources只是网站上可能存在的一个具体静态资源目录。所以如果缓存服务器是根据文件扩展名判断是否缓存那么你可以用类似/my-account.css或者/my-account.js来冒充静态资源不需要/resources。但如果这个 Lab 的缓存规则明确是/resources/*才会缓存那么你就不能简单把resources去掉因为/my-account.css虽然看起来像 CSS但缓存服务器未必会缓存它。可以这么理解假设缓存规则是/resources/* → 缓存那么/my-account 某种路径混淆 /resources是为了让缓存服务器产生“这个请求属于 resources。”而如果缓存规则是*.css *.js *.jpg那么/my-account.css就足够让缓存服务器产生“这是 CSS缓存它。”所以resources不是“静态资源”的代名词它只是一个具体的静态资源路径。对你当前这个 PortSwigger Lab如果你做的是你前面提到的Web cache deception via origin server normalization那么不要简单认为“我加.css就能替代resources”。这个 Lab 要利用的是缓存服务器的 URL 解析 ≠ 源服务器的 URL 规范化而resources是根据该实验环境的缓存行为选择的一个缓存诱饵路径。所以判断能不能替换最简单的方法就是先确认什么 URL 会被缓存如果/resources/xxx → HIT而/xxx.css → MISS那就说明这个环境依赖resources。反过来如果/xxx.css → HIT那么.css就可能承担resources的作用。因此不是“Web Cache Deception 必须使用 resources”而是“必须让缓存服务器把这个请求当成可缓存的资源”具体用/resources、.css还是其他形式取决于目标缓存服务器的规则。在第三篇的时候我没有重点去了解为什么必须要在url的路径中添加resources在深度了解后发现在发现漏洞的过程中我们做的每一步中就包含了试探缓存服务器的规则基于怎样的规则才能缓存到用户的cookiesession而最简单易懂的就是直接缓存文件例如.css .js .jpg 等等但最难懂的是缓存路径和分隔符的试探我们则需要通过intruder去遍历payload不断试探状态码。当然我们接下来要说的归一化处理也是其中很重要的一环相当于结合缓存服务器和源服务器。归一化图同一个 HTTP 请求 │ ┌────────────┴────────────┐ ↓ ↓ 缓存服务器 源服务器 │ │ 认为是 resources 规范化后 可缓存资源 实际访问 my-account │ │ └──────────┬──────────────┘ ↓ my-account 响应 ↓ 被缓存整个攻击过程攻击者 │ │ 构造恶意 URL ↓ /my-account%23%2f%2e%2e%2fresources?wcd │ ↓ ┌───────────────────┐ │ 缓存服务器 │ │ │ │ 看到 resources │ │ ↓ │ │ 认为可以缓存 │ └────────┬──────────┘ │ ↓ ┌───────────────────┐ │ 源服务器 │ │ │ │ 解析 URL │ │ ↓ │ │ 到达 /my-account │ │ ↓ │ │ 返回受害者账户信息 │ └────────┬──────────┘ │ ↓ 返回给受害者 │ ↓ 缓存服务器缓存归一化原理要利用这种差异您还需要找到一个源服务器使用但缓存中未使用的分隔符。通过将可能的分隔符添加到动态路径之后的有效负载中来测试它们如果源服务器使用分隔符它将截断 URL 路径并返回动态信息。如果缓存不使用分隔符它将解析路径并缓存响应。例如考虑有效载荷/profile;%2f%2e%2e%2fstatic。源服务器使用;以下分隔符缓存将路径解释为/static源服务器将路径解释为/profile源服务器会返回动态配置文件信息并将其存储在缓存中。因此您可以利用此有效载荷进行攻击。实验利用缓存服务器规范化进行 Web 缓存欺骗实验利用缓存服务器规范化进行 Web 缓存欺骗根据归一化原理可知 我们需要让缓存服务器认为是resources静态路径 让源服务器认为是my-account 并且在构造的url中需要使用到分隔符 也就是说我们需要intruder对分隔符进行遍历筛选找出符合状态码的分隔符使用/my-account§§%2f%2e%2e%2fresources虽然有四个可以使用 但是我们还是选最熟悉最简单的并将其统一为url编码的%3f 得出/my-account%3f%2f%2e%2e%2fresources经过测试只用%23可以使用后获得x-cache:miss之后便可以注入脚本了

相关新闻

2026/8/29 18:47:41

论文一直拖延写不完?2026 用5步自救清单帮你先动起来

论文拖了两个月一个字没动,这种"开了头却迈不出下一步"的卡顿,几乎每个写作者都经历过。问题往往不在能力,而在启动成本太高、反馈太慢。把"写完整篇"这个大目标,拆成"先出一个能反复改的骨架"&…

2026/8/29 18:47:41

Windows 安装 OpenClaw 图文实操教程,TopClaw内置六万技能免费

安装前的准备,这些坑我帮你踩过了 最近在折腾OpenClaw,一开始我以为就是普通软件,双击下一步就完事了。结果发现绕了不少弯子,为了让大家少走弯路,我把自己实操验证过的步骤整理出来,新手照着抄作业就行。先…

2026/8/29 19:02:41

01-Python自动化测试-学习路线

一、平常使用的领域, 其二是自动化测试, 其三是主流的自动化测试框架, 其四是我们应该去学习的内容。主流框架自然选择, 要是你决定采用之后, 你又遭遇了一个新问题, 挑选一门语言, 可是支持java, 还有ruby, 以及php, 另外还有C#。从语言易学性来讲: ruby、;从语言应用广度来讲…

2026/8/29 19:02:41

STM32 USB Host读取U盘完整指南:从MSC协议到FatFs文件系统

1. 项目背景与整体思路1.1 这个培训到底要解决什么问题2018年5月,我参加了一场STM32 USB OTG的专题培训,目标很明确:在一个STM32平台上跑通USB Host功能,插入U盘后能正确枚举设备,并且能通过文件系统读取U盘里的文件。…

2026/8/29 19:02:41

电子设计竞赛备赛实战:从硬件选型到PID调参的完整技术复盘

1. 从“回忆录”到“实战指南”:为什么今天还要聊2020年的电赛?“电子设计竞赛2020回忆录”——这个标题听起来像是一篇怀旧文章,记录着三年前某个团队或个人的参赛经历。你可能会想,技术迭代这么快,2020年的经验放到今…

2026/8/29 19:02:41

蓝桥杯国赛题解:皮亚诺曲线距离计算与递归分治算法

1. 项目概述:从一道国赛题看分形与坐标映射的实战看到“皮亚诺曲线距离”这个题目,很多参加过蓝桥杯国赛的同学可能心头一紧。这确实是2020年第十一届蓝桥杯软件类国赛C/C B组里一道颇具分量的题目,属于那种一眼看去有点懵,但一旦…

2026/8/29 18:57:41

PIC32+MPLAB Harmony实战:从MCC配置到代码生成全流程解析

作为常年跟Microchip PIC系列打交道的人,我对PIC32和MPLAB Harmony这个组合的感情一直有点复杂。早些年玩PIC32MX,觉得Harmony配置器生成的代码太“重”,远不如自己对着数据手册抠寄存器来得痛快。直到最近完整走了一遍基于新版MPLAB Harmony…

2026/8/28 16:16:17

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/28 16:16:21

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/28 16:16:22

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/29 0:01:10

etc目录下的profile.d文件目录设置环境变量和全局脚本shell

一、设置环境变量etc目录下的profile.d文件目录 /etc/profile.d1、编写 vi test.sh文件内容# jdk变量 export ZHK_HOME/root export PATH$PATH:$ZHK_HOME/test # 可以取出来ZHK_HOME变量给ZZZ_HOME赋值 export ZZZ_HOME${ZHK_HOME}/test2、刷新 执行source /etc/profile 命令使…

2026/8/29 0:01:10

【JavaScript】内存管理-垃圾回收机制-内存泄露

内存管理 C 语言这样的底层语言一般都有底层的内存管理接口,比如 malloc()和free()。 而 JavaScript 是在创建变量(对象,字符串等)时自动进行了分配内存,并且在不使用它们时“自动”释放。释放的过程称为垃圾回收。 整…

2026/8/29 0:01:10

Labgrid-MCP:为嵌入式硬件实验室接入AI Agent操控能力

Labgrid-MCP 的目标是把 MCP(Model Context Protocol)能力延伸到真实嵌入式硬件实验室:AI Agent 通过一个标准化的 MCP Server,就能查看目标板状态、控制上电断电、复位开发板、读取串口日志,甚至执行镜像刷写。对于经…

2026/8/28 16:16:48

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/28 16:16:50

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/28 11:06:45

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…