目标是一个互联网服务平台的用户上传链路:头像、附件、图片都走「前端向后端申请签名 → 前端直传对象存储」。测试在完全无账号的黑盒条件下进行,目标是验证这条链路的鉴权是否真的由服务端把关,还是把信任交给了前端——一旦签名能被自己算出来,整个上传闸门就形同虚设。
点击空白处退出提示
目标是一个互联网服务平台的用户上传链路:头像、附件、图片都走「前端向后端申请签名 → 前端直传对象存储」。测试在完全无账号的黑盒条件下进行,目标是验证这条链路的鉴权是否真的由服务端把关,还是把信任交给了前端——一旦签名能被自己算出来,整个上传闸门就形同虚设。
报告按「先证明能进去,再证明能造成什么」组织。执行摘要给出结论与建议定级;风险统计区分高危/中危/低危并说明定级理由;核心漏洞部分完整还原利用链:从前端静态资源定位密钥的位置与片段、签名算法的还原过程、本地算出的签名值、不携带任何 Cookie 直传存储桶的原始请求与 200 响应,最后给出上传文件的外链地址证明可公开访问;危害分析落到存储型 XSS、恶意内容借域名分发、存储与流量成本滥用三个具体后果;修复给治本方案(密钥出服务端、改 STS 临时凭证并限定路径前缀与文件类型)与 24 小时/7 天/30 天分级的修复时限。
第一步资产收集:子域枚举拿到对象存储域名,抓取前端构建产物(主包与分块);第二步密钥定位:在压缩后的 JS 里检索签名相关常量,找到 accessKeyId / accessKeySecret / bucket / endpoint 四项配置硬编码在束里;第三步签名还原:按厂商签名算法在本地独立实现,算出一个合法签名;第四步无凭证验证:不带登录态直接 PUT 到存储桶,拿到 200;第五步影响确认:访问外链地址确认文件可公开读取,并测试上传 HTML 是否被内联渲染以判断 XSS 风险。全程只写一个无害测试文件,验证后立即删除,不做任何破坏性动作。



评论