Agent Skills
返回列表
🔒

文件上传攻击

IT 运维与安全 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/file-upload-sh-ulx1k2。

技能介绍

要解决的问题

上传接口是渗透测试里最容易出洞、也最容易漏测的一类入口。默认的防护通常只做了三件事:校验 Content-Type、校验扩展名白名单、把文件存到磁盘。问题在于这三件事各自都有成熟的绕过方式:Content-Type 由客户端声明,改一个请求头即可;扩展名校验在大小写、双写、特殊后缀(.pHp、.aspx;.jpg)上常有逻辑分支没覆盖;而文件内容本身是否与后缀一致,很多实现从不检查。结果是攻击者能把脚本、HTML、SVG 或带路径的恶意文件名送进服务端,轻则存储型 XSS,重则拿到 webshell。

技能如何工作

这个技能把上传点测试拆成一份按顺序执行的检查清单,核心覆盖七类技术:

  • MIME 类型绕过:篡改 Content-Type 头部,观察服务端是否信任客户端声明
  • 扩展名绕过:大小写混淆、双写、合法后缀拼接、空字节截断等变体
  • 魔术字节篡改:修改文件头(如把 PHP 脚本伪装成 GIF89a)绕过基于文件头的检测
  • 文件名路径穿越:利用 ../../etc/passwd 之类的路径结构操纵落盘位置
  • SVG/HTML 上传导致的存储型 XSS:上传内嵌脚本的文档,在渲染端触发
  • 服务端处理攻击:针对缩略图生成、解压、格式转换等后续处理环节的漏洞
  • 竞态条件:在并发请求下绕过一次性校验或计数限制

使用时按清单顺序逐项推进,每一步都对照当前目标的上下文判断是否适用,并记录已完成项。每轮测试结束后,基于已确认的发现给出下一步建议,而不是简单罗列所有技术点。

适用边界与注意点

这套清单面向 Web 应用渗透测试和 bug bounty 场景,针对已授权的上传端点。它不包含利用链的后续阶段,比如拿到 webshell 之后的权限提升;也不涉及基础设施层面的绕过。测试前需确认授权范围,尤其竞态条件和路径穿越两项可能影响服务端文件系统状态,建议在隔离环境验证。另外,服务端处理环节的漏洞表现高度依赖具体实现,清单提供的是检查方向而非通用 PoC。

使用场景

  • 对已授权的Web应用上传接口做渗透测试时,排查扩展名白名单的绕过漏洞
  • 测试上传功能的存储型XSS时,验证SVG/HTML文件能否触发脚本执行
  • 检查上传文件的服务端处理逻辑时,测试缩略图生成环节是否存在漏洞
  • 在并发场景下测试上传接口时,排查竞态条件导致的校验绕过

适合人员

  • Web渗透测试工程师,需要在授权测试中全面覆盖文件上传接口的漏洞点
  • 企业安全团队成员,负责定期审计内部Web应用上传功能的安全性
  • Bug Bounty猎人,寻找上传接口绕过漏洞以提交有效报告
  • Web应用开发者,上线前自查上传功能的安全防护是否完善