尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

PayloadsAllTheThings 实战指南:客户端路径遍历(CSPT)的原理、利用链与 CSPT2CSRF 攻击

发布时间:2026/9/30 2:29:36

资讯中心
01
ARTICLE

PayloadsAllTheThings 实战指南:客户端路径遍历(CSPT)的原理、利用链与 CSPT2CSRF 攻击

PayloadsAllTheThings 实战指南:客户端路径遍历(CSPT)的原理、利用链与 CSPT2CSRF 攻击
网络安全应用安全渗透测试【免费下载链接】PayloadsAllTheThingsA list of useful payloads and bypass for Web Application Security and Pentest/CTF项目地址https://gitcode.com/GitHub_Trending/pa/PayloadsAllTheThings点击查看免费下载本文以仓库Client Side Path Traversal/README.md为主体系统讲解客户端路径遍历Client-Side Path TraversalCSPT的成因、与fetch归一化机制的关系以及两条最核心的利用链——CSPT to XSS与CSPT to CSRFCSPT2CSRF。读完本文你将能够独立识别 CSPT 漏洞点、构造../注入 payload、理解 CSPT 为何能绕过 anti-CSRF token 与 SameSiteLax 防护并掌握对应的检测工具与实验环境。什么是 Client-Side Path TraversalCSPTCSPTClient-Side Path Traversal客户端路径遍历有时也被称为On-site Request Forgery站内请求伪造是一种可以被用作 CSRF 或 XSS 攻击跳板/工具的漏洞。它与传统的服务端路径遍历见仓库中 Directory Traversal/README.md最大的区别在于问题发生在浏览器前端的 JavaScript 代码中而不是服务端的文件系统访问逻辑中。CSPT 的核心成因可以概括为三点客户端发起请求页面内的 JavaScript 使用fetch或其他请求 API向某个 URL 发起请求而这个 URL 的路径部分拼接了攻击者可控且未正确编码的输入。../序列注入攻击者在可控输入中注入多个../字符经过 URL 路径**归一化normalization**后这些字符会把请求“重定向”到一个完全不同的 URL端点从而可能导致安全破坏。浏览器自动携带凭据由于每次请求都是从应用前端内部发起的浏览器会自动附带 Cookie 以及其他认证机制使得这些请求天然具备“已登录用户”的上下文可供攻击利用。从本质上看CSPT 利用了“服务端/浏览器对路径的归一化行为”与“开发者对前端 URL 拼接逻辑的信任”之间的落差开发者以为输入只会作为路径片段的一部分而归一化规则却允许..跳出当前路径层级。攻击前提与原理为什么../能改变请求去向一个存在 CSPT 的典型场景如下页面https://example.com/static/cms/news.html接收参数newsitemid页面 JavaScript 随后执行类似fetch(/newitems/ newsitemid)的操作去拉取新闻内容攻击者把newsitemid设为../pricing/default.js?cb...之类的值浏览器在发起请求前会对 URL 做归一化/newitems/../pricing/default.js被解析为/pricing/default.js于是请求被发送到了攻击者指定的端点。值得强调的是这类“输入未编码就拼进路径”的问题在很多 SPA单页应用中普遍存在——前端为了复用后端渲染的内容或跨模块获取数据经常用字符串模板拼接 URL。可参考仓库 XSS Injection/README.md 中对 DOM 型 XSS 的描述客户端对输入的处理缺陷同样是漏洞面的一部分只是 CSPT 的落点在“请求路径”而非“DOM 渲染”。MethodologyCSPT 的两条主要利用链CSPT to XSSCSPT 可以被链式利用升级为 XSS。攻击者在发现一个可控的路径片段后可以把它指向前端页面中另一个存在文本注入text injection的 JS 或 HTML 端点让原本只能控制请求 URL 的攻击变成可执行脚本的攻击。原文档给出的经典示例链路如下页面https://example.com/static/cms/news.html接收参数newsitemid它会去fetch内容https://example.com/newitems/newsitemid同时研究者发现https://example.com/pricing/default.js中存在一个可通过cb参数触发的文本注入点最终 payloadhttps://example.com/static/cms/news.html?newsitemid../pricing/default.js?cbalert(document.domain)//这条链的巧妙之处在于newsitemid../pricing/default.js经过归一化后把请求从/newitems/...跳转到/pricing/default.js第二个?使得cb参数能够传入 JS 端点alert(document.domain)是注入到响应内容中的 JavaScript末尾的//用于注释掉后续可能拼接的字符串保证注入代码语法完整、可正常执行由于news.html页面与目标 JS 同源document.domain可正常读取配合仓库 XSS Injection/1 - XSS Filter Bypass.md 中整理的过滤绕过手法如针对点号、括号、document黑名单的各种 bypass攻击者可以进一步扩展该 XSS 的实际危害例如抓取 Cookie、localStorage 中的 access_token 等敏感数据。从方法论角度挖掘 CSPT to XSS 的要点是先在应用中找到一个“路径可控 响应体可注入”的组合再借助../归一化把两者桥接起来。CSPT to CSRFCSPT2CSRFCSPT 的第二种、也是近年被重点研究的利用方式是把它转化为 CSRF 攻击。原理是CSPT 能“重定向”合法的 HTTP 请求而前端在发起这些请求时会自动附加 API 调用所需的 token如认证 token 或 CSRF token。攻击者通过控制请求路径让携带了合法 token 的请求被发送到自己想要的目标端点从而绕过现有的 CSRF 防护。原文档给出了 CSPT2CSRF 与传统 CSRF 的能力对比表✓ 表示具备该能力✗ 表示不具备能力维度CSRFCSPT2CSRF支持 POST 型 CSRF✓✓可以控制请求体body✓✗可配合 anti-CSRF token 工作✗✓可配合 SameSiteLax 工作✗✓支持 GET / PATCH / PUT / DELETE CSRF✗✓支持 1-click一次点击CSRF✗✓影响是否取决于 source 与 sink✗✓这张表清楚地说明了 CSPT2CSRF 的价值定位它牺牲了“控制请求体”的能力换来了对 anti-CSRF token、SameSiteLax 以及各种 HTTP 方法的全面适配能力。原因在于请求完全由目标应用自己的前端代码发起浏览器会补全所有认证上下文攻击者只需要“指路”不需要“伪造”。仓库 Cross-Site Request Forgery/README.md 中列出的经典 CSRF 手法如img触发的 GET、自动 submit 的 POST 表单、JSON 简单请求等在存在 CSPT 的应用中往往失效——因为 token 校验和 SameSite 机制挡住了跨站伪造而 CSPT2CSRF 正是针对这些防护的“站在应用内部发请求”的破解思路。真实世界案例原文档整理了以下已被公开披露的真实场景Rocket.Chat 中的 1-click CSPT2CSRF仅需一次点击即可完成攻击。CVE-2023-45316 —— Mattermost 的 POST sink CSPT2CSRF利用路径/team/channels/channelname?telem_actionunder_controlforceRHSOpentelem_run_id../../../../../../api/v4/caches/invalidate通过telem_run_id参数注入../把前端发起的请求重定向到api/v4/caches/invalidate端点。CVE-2023-6458 —— Mattermost 的 GET sink CSPT2CSRF同样利用 Mattermost 的客户端路径处理缺陷但 sink 是 GET 型端点。Client Side Path Manipulationerasec.be 披露payload 形如https://example.com/signup/invite?emailfoo%40bar.cominviteCode123456789/../../../cards/123e4567-e89b-42d3-a456-556642440000/cancel?a通过在inviteCode后拼接/../../../把请求引向cards/card-id/cancel端点。CVE-2023-5123 —— Grafana JSON API 插件中的 CSPT2CSRF在 Grafana 生态插件中利用同类缺陷完成 CSRF 攻击。这些案例表明CSPT2CSRF 的实战价值已在 Rocket.Chat、Mattermost、Grafana 等主流开源产品中被反复验证属于真实存在、可被独立复现的漏洞类型而非纸面推演。工具与自动化发现原文档推荐的核心工具如下CSPTBurpExtensiondoyensec 出品开源的 Burp Suite 扩展用于发现并利用客户端路径遍历漏洞。它的典型工作流是先定位前端代码中所有fetch/XHR 调用及其拼接参数再自动检测哪些拼接点可以被../注入最后辅助把 CSPT 升级为 XSS 或 CSRF 利用链。在实际渗透测试中除了插件自动扫描还可以手工关注以下模式前端代码中出现fetch(/xxx/ param)、/api/v1/${id}之类的字符串拼接参数值会被 URL 编码后再拼接编码后..变成%2e%2e%2f服务端或浏览器归一化后依然生效应用存在多个“路径可控 响应可注入”端点可以桥接成 XSS 链。结合仓库纵深CSPT 与路径遍历编码绕过的协同CSPT 的核心是../注入因此所有针对路径遍历的编码绕过技巧仓库 Directory Traversal/README.md 中有系统整理同样适用于 CSPT——尤其是当应用或前置 WAF 对../做了简单过滤时。编码类型字符编码示例典型用途URL 编码.→%2e/→%2f\→%5c绕过对字面../的字符串匹配双重 URL 编码.→%252e/→%252f绕过一层解码的过滤器如 SpringUnicode 编码.→%u002e/→%u2215绕过 ASCII 层面的黑名单Overlong UTF-8.→%c0%ae/→%c0%af绕过严格 UTF-8 校验的解析器Mangled Path..././、...\.\绕过“删除一次../”的 WAF 逻辑上述编码在 CSPT 场景中的意义在于浏览器在解析 URL 时会先解码再归一化因此只要前端拼接逻辑不限制编码字符%2e%2e%2f、%c0%ae%c0%ae%c0%af等形态最终仍会被还原成../并完成路径跳转。这也是原文档参考文献中“Bypassing WAFs to Exploit CSPT Using Encoding Levels”研究Matan Berson2024-05所强调的方向通过多层编码分级encoding levels绕过 WAF再触发 CSPT。从源码结构看这类绕过的前提是1输入在到达fetch拼接点前没有被彻底规范化2浏览器/服务端至少保留一种解码归一化路径。因此测试时建议把上述编码形态逐一加入 fuzz 字典。检测与防御建议结合 CSPT 的成因防御与检测可从以下角度入手检测红队视角审计前端源码中所有fetch/XMLHttpRequest的动态 URL 拼接重点标记参数直达路径片段的调用用../、%2e%2e%2f、..././等字典 fuzz 可控参数观察请求是否被重定向到非预期端点使用 CSPTBurpExtension 自动化完成“拼接点发现 → 注入验证 → 利用链构建”的闭环。防御蓝队/开发视角输入白名单校验路径片段参数应使用严格的正则如仅允许[a-zA-Z0-9_-]从源头杜绝..编码后再校验对输入先做一次 URL 解码、再做合法性校验防止双重编码绕过前端禁止拼接优先使用带参数的对象式请求如new URL()并逐段设置 pathname避免直接字符串拼路径响应侧防注入对于可能被 CSPT 指向的 JS 端点避免把任何查询参数回显到响应体中消除 text injection从而切断 CSPT to XSS 链。Labs练习环境CSPTPlaygrounddoyensec 出品开源的 CSPT 练习场地playground专门用于发现和利用客户端路径遍历适合验证本文中的所有 payload 与利用链。Root Me —— CSPT - The Ruler在线 Web-Client 挑战题可用于训练手工挖掘 CSPT 与构造注入链的能力。建议练习顺序先在 CSPTPlayground 中复现“CSPT to XSS”的基础链newsitemid../xxx.js?cbpayload//这类模式再尝试把同一思路迁移到 CSPT2CSRF 的 sink 控制上最后用编码绕过技巧过一遍 WAF 场景。参考资料与延伸阅读原文档附带的参考文献覆盖了 CSPT 从 2007 年到 2025 年的关键研究脉络按其主题可归纳为概念奠基Dafydd StuttardPortSwigger于 2007 年提出的 On-site request forgery 概念文章——CSPT 的早期称谓即源于此。CSPT2CSRF 系统化研究Maxence SchmittDoyensec于 2024 年发布的系列成果——包括 2024-07-02 的 Exploiting Client-Side Path Traversal to Perform Cross-Site Request Forgery - Introducing CSPT2CSRF 博客、同名白皮书CSRF is dead, long live CSRF以及 OWASP Global AppSec 2024 大会演讲材料。真实漏洞分析Davwwwx 于 2023-08 披露的 Jupyter 实例 auth token 泄露链串联 CVE-2023-39968、CVE-2024-22421 与一个 Chromium 浏览器缺陷。WAF 绕过Matan Berson 于 2024-05 发表的 Bypassing WAFs to Exploit CSPT Using Encoding Levels与仓库 Directory Traversal/README.md 中的编码表可互相印证。自动化发现Vitor Falcao 于 2024-10 发表的 Automating Client-Side Path Traversals Discovery。工具链扩展Dennis Goodlett 于 2024-12 发表的 CSPT the Eval Villain Way!结合 Eval Villain 进行 CSPT 分析。文件上传方向Maxence Schmitt 于 2025-01 发表的 Bypassing File Upload Restrictions To Exploit Client-Side Path Traversal展示了通过文件上传限制绕过触发 CSPT 的新思路。以上研究共同勾勒出 CSPT 的完整攻击面从概念提出2007到系统化武器化CSPT2CSRF2024再到编码绕过、自动化发现与文件上传等新维度2024-2025。对安全研究者而言CSPT 是一个“成本低、链式价值高”的漏洞类型——它本身可能只是路径拼接缺陷但借助 XSS 与 CSRF 两条利用链可以撬动 token 体系、SameSite 防护等现代 Web 安全机制。赞分享网络安全应用安全渗透测试【免费下载链接】PayloadsAllTheThingsA list of useful payloads and bypass for Web Application Security and Pentest/CTF项目地址https://gitcode.com/GitHub_Trending/pa/PayloadsAllTheThings点击查看免费下载相关推荐WMPFDebugger终极指南5大实战技巧深度解析Windows微信小程序调试WMPFDebugger终极指南5大实战技巧深度解析Windows微信小程序调试 WMPFDebugger是一款专为Windows平台设计的微信小程序调试工具开发工具调试器逆向工程Flink CDC 对接 PolarDB-X用 mysql-cdc 连接器搭建增量订阅到 Elasticsearch 的实时管道Flink CDC 对接 PolarDB X用 mysql cdc 连接器搭建增量订阅到 Elasticsearch 的实时管道 Flink CDC 的 my网络安全应用安全渗透测试ZipArchive安全注意事项防范路径遍历攻击的完整指南ZipArchive安全注意事项防范路径遍历攻击的完整指南 ZipArchive是一个简单实用的iOS、macOS和tvOS文件压缩解压工具类但在使用过程中开发工具上一篇Forza Mods AIO 完整指南:免费开源的 FH4/FH5 终极修改工具上手教程下一篇旧iPhone系统降级终极指南从iOS 12回到流畅日常创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。