客户端路径遍历 (Client Side Path Traversal)
客户端路径遍历 (CSPT),有时也被称为“站内请求伪造 (On-site Request Forgery)”,是一种可以被用作 CSRF 或 XSS 攻击工具的漏洞。 它利用了客户端使用 fetch 向 URL 发起请求的能力,其中可以注入多个
../字符。归一化 (normalization) 后,这些字符会将请求重定向到不同的 URL,从而可能导致安全漏洞。 由于每个请求都是从应用程序的前端发起的,浏览器会自动包含 Cookie 和其他身份验证机制,使其可被这些攻击利用。
摘要 (Summary)
工具 (Tools)
- doyensec/CSPTBurpExtension - CSPT 是一款开源的 Burp Suite 扩展,用于发现和利用客户端路径遍历。
方法论 (Methodology)
CSPT 转 XSS

一个提供文章内容的页面调用 fetch 函数,向一个包含攻击者控制且路径未正确编码的输入的 URL 发送请求,允许攻击者在路径中注入 ../ 序列,使请求被发送到任意端点。这种行为被称为 CSPT 漏洞。
示例:
- 页面
https://example.com/static/cms/news.html接收newsitemid作为参数 - 然后获取
https://example.com/newitems/<newsitemid>的内容 - 同时发现
https://example.com/pricing/default.js存在通过cb参数进行的文本注入 - 最终的 Payload 为:
https://example.com/static/cms/news.html?newsitemid=../pricing/default.js?cb=alert(document.domain)//
CSPT 转 CSRF
CSPT 正在重定向合法的 HTTP 请求,允许前端为 API 调用添加必要的令牌,例如身份验证或 CSRF 令牌。这种能力可能被用来规避现有的 CSRF 保护措施。
| CSRF | CSPT2CSRF | |
|---|---|---|
| 是否支持 POST CSRF ? | ||
| 是否能控制请求主体 (Body) ? | ||
| 是否能绕过抗 CSRF 令牌 ? | ||
| 是否能在 Samesite=Lax 下工作 ? | ||
| GET / PATCH / PUT / DELETE CSRF ? | ||
| 1-click CSRF ? | ||
| 影响是否取决于输入源 (source) 和输出点 (sink) ? |
真实案例:
- Rocket.Chat 中的 1-click CSPT2CSRF
- CVE-2023-45316:Mattermost 中带有 POST 输出点的 CSPT2CSRF:
/<team>/channels/channelname?telem_action=under_control&forceRHSOpen&telem_run_id=../../../../../../api/v4/caches/invalidate - CVE-2023-6458:Mattermost 中带有 GET 输出点的 CSPT2CSRF
- 客户端路径操纵 - erasec.be:CSPT2CSRF
https://example.com/signup/invite?email=foo%40bar.com&inviteCode=123456789/../../../cards/123e4567-e89b-42d3-a456-556642440000/cancel?a= - CVE-2023-5123:Grafana JSON API 插件中的 CSPT2CSRF
实验环境 (Labs)
- doyensec/CSPTPlayground - CSPTPlayground 是一个开源的练习场,用于发现和利用客户端路径遍历 (CSPT)。
- Root Me - CSPT - The Ruler
参考资料 (References)
- 利用客户端路径遍历执行跨站请求伪造 - CSPT2CSRF 介绍 - Maxence Schmitt - 2024年7月2日
- 利用客户端路径遍历 - CSRF 已死,CSRF 万岁 - 白皮书 - Maxence Schmitt - 2024年7月2日
- 利用客户端路径遍历 - CSRF 已死,CSRF 万岁 - OWASP Global AppSec 2024 - Maxence Schmitt - 2024年6月24日
- 利用链泄露 Jupyter 实例鉴权令牌:CVE-2023-39968, CVE-2024-22421 及一个 chromium 漏洞 - Davwwwx - 2023年8月30日
- 站内请求伪造 - Dafydd Stuttard - 2007年5月3日
- 使用多级编码绕过 WAF 以利用 CSPT - Matan Berson - 2024年5月10日
- 自动化客户端路径遍历发现 - Vitor Falcao - 2024年10月3日
- CSPT:Eval Villain 方式! - Dennis Goodlett - 2024年12月3日
- 绕过文件上传限制以利用客户端路径遍历 - Maxence Schmitt - 2025年1月9日