从隐藏接口的JWT绕过到AWSS3任意文件覆盖

admin 2026-04-28 06:58:04 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文档披露一个私有漏洞赏金计划中的高危漏洞:通过修改JWT的realm参数获取后台权限,结合Authorization请求头变异绕过API鉴权,利用隐藏上传接口覆盖AWSS3存储桶中的业务文件。漏洞涉及身份验证绕过、任意文件上传和覆盖,可替换JS、EXE等核心文件,危害业务完整性。 综合评分: 85 文章分类: 漏洞分析,渗透测试,WEB安全,云安全,安全建设


cover_image

从隐藏接口的 JWT 绕过到 AWS S3 任意文件覆盖

原创

Pwn1 Pwn1

漏洞集萃

2026年4月26日 13:26 山东

在小说阅读器读本章

去阅读

免责声明 本公众号所发布的文章内容仅供学习与交流使用,禁止用于任何非法用途。

在测试一个私有漏洞赏金计划时,我遇到了一个

漏洞场景

漏洞基于 JWT做身份验证的业务系统中。主要牵扯到两个核心场景:一个是主站负责正常用户登录认证的 API 接口;另一个是暴露在子域名下、隐藏在前端 JS 代码里的后台文件上传端点 /upload

原本功能流程

在正常的业务逻辑里,用户在主站登录之后,后端服务会签发一个包含特定作用域(realm)和用户权限的 JWT 给到客户端。

按道理来讲,如果要去访问 admin.test.com 这种后台系统,或者调用后台特有的 API 端点,服务器会在中间件层面严格校验两件事:一是这个 Token 里的作用域对不对,二是请求头里的格式必须是标准的 Authorization: Bearer <JWT>

只有合法且拥有后台作用域的请求,才能通过校验,把文件上传到后端的 AWS S3 存储桶,最后由 CloudFront CDN 进行分发显示。

漏洞的发现过程

这个洞的挖掘过程核心就是抓细节和不断的 Fuzzing,思路可以拆解成下面这几步:

测试时,在 admin.test.com 加载的 app.js中,发现系统硬编码了一系列 JWT 的作用域列表,其中有一个看起来就非常敏感的 test-dashboard

回头去抓主站正常的登录接口 POST /api/v1/login,尝试在提交的 JSON 数据里硬塞一个参数:"realm":"test-dashboard"。神奇的事情发生了,服务器照单全收,直接签发了一个带有后台管理作用域的 Token。拿着这个 Token,直接进到了后台 UI 界面。但是这就完了吗?并没有,因为虽然页面看得到,但尝试操作具体功能时,底层的 API 还是会报错拦截,也就是属于中危级别的 UI 绕过。

既然有 UI 权限但缺 API 权限,那就得找薄弱的 API 下手。常规的 GET 请求没探出什么东西,直接转用 POST 方法对后台子域名进行目录 Fuzzing,结果探出了一个返回 403 Forbidden 的接口:/upload。这个端点在前面的 app.js 里也出现过。

根据 JS 文件里的逻辑,拼凑出了一个标准的文件上传数据包,带上前面拿到的 Token 格式为 Authorization: Bearer <JWT>,发过去之后返回了 401 Unauthorized

这时候只能对 HTTP 头进行各种变异和 Fuzzing。

测试发现了一个逻辑漏洞:只要把请求头里的 Bearer 这几个字符删掉,仅仅保留 Authorization: <JWT> 发送过去,服务器端负责鉴权的逻辑竟然直接瘫痪了!接口响应 200 OK,文件上传成功!

文件是传上去了,但接口没返回文件存在哪儿。这时候回看 Burp Suite 的历史流量,发现在别的页面响应里,经常出现类似 https://xxxxxxxx.cloudfront.net/gallery/xxxxx 这样的 CDN 链接。这里的 gallery 刚好和上传数据包里 destination 这个参数的值一模一样!顺藤摸瓜拼接出刚刚上传的文件名 poc.txt 并访问,成功在云端看到了上传的内容。

如果是单纯传个无关痛痒的 txt,其实危害也就那样。

但是这里托管的云服务是 AWS S3,经过测试发现它存在配置缺陷:上传文件时,如果 destination 目录和 filename 和线上已有的文件同名,系统不会拒绝也不会重命名,而是直接覆盖掉原有文件!

而且,主站的各种核心 JS 文件、HTML,甚至提供给用户下载的 Windows 安装包(EXE)和 PDF 文档,全都在这个 CDN 域名下托管着。只要利用这个上传包指明目标路径,就能把线上的正常业务文件全部替换成带有恶意代码的后门文件。

来源:

https://medium.com/@h4x0r_dz/23000-for-authentication-bypass-file-upload-arbitrary-file-overwrite-2578b730a5f8

觉得本文内容对您有启发或帮助? 点个关注➕,获取更多深度分析与前沿资讯!

👉 往期精选

一种利用 HTTP 重定向循环的新型 SSRF 技术

预接管账号:结合 OTP 校验分离与空格绕过注册内部管理员邮箱


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:漏洞集萃 Pwn1 Pwn1《从隐藏接口的 JWT 绕过到 AWS S3 任意文件覆盖》

如何破解安全行业招聘难 网络安全文章

如何破解安全行业招聘难

文章总结: 文章分析安全行业招聘难的结构性原因,指出需复合型人才但供给不足,提出放弃即招即用、注重留人、转换招聘思路及明确需求四方面解决方案,强调老板应亲自投入
评论:0   参与:  0