SasanLabs/owasp-zap-fileupload-addon
GitHub: SasanLabs/owasp-zap-fileupload-addon
一款用于OWASP ZAP的文件上传安全扫描插件,通过自动化检测帮助发现Web应用文件上传功能中的安全漏洞。
Stars: 23 | Forks: 4
# owasp-zap-fileupload-addon

[](https://opensource.org/licenses/Apache-2.0) [](http://makeapullrequest.com)  [](https://twitter.com/intent/follow?screen_name=sasan_karan)
该项目包含 File Upload 扫描规则,用于发现文件上传功能中的漏洞。
## 为什么需要此插件
文件上传正逐渐成为各类应用不可或缺的一部分,用户可以上传他们的照片、简历,或者展示正在进行的项目的视频。应用程序应能够有效防御伪造和恶意文件,从而保障应用程序及用户的安全。通常,文件上传功能的自动化检测相当复杂,且攻击面巨大,因此有必要对该过程进行自动化并确保其安全性。
## 配置
文件上传功能通常包含两个端点:一个用于上传文件,另一个用于检索文件。必须了解这两个端点。在对应用程序进行主动扫描时,文件上传端点通常是已知的,但扫描规则并不知道检索端点,因此需要针对检索端点进行特定的配置。
在 ZAP 的选项对话框中,您会找到一个文件上传部分,如下所示:

### 说明
为了找到检索/查看已上传文件的 URL,有以下几种选项:
1. 在某些应用程序中,检索已上传文件的 URL 是静态的,不会改变,或者只有文件名发生变化。为了处理此类配置,选项面板提供了 `Static Location Configuration`,可以在 `URI Regex` 字段中添加静态 URL。`URI Regex` 字段还通过 `${fileName}` 参数支持动态文件名,例如 `http:///${fileName}`
2. 在某些应用程序中,检索已上传文件的 URL 位于文件上传请求的响应中。为了处理此类配置,选项面板提供了 `Parse Http Response Configuration`,其中包含 `Start Identifier` 和 `End Identifier` 两个参数。这些标识符用于在响应中定位 URL。
3. 在某些应用程序中,检索已上传文件的 URL 位于另一个不同 URL(称为预检请求)的响应中。例如,头像图片的 URL 是个人资料页面的一部分,因此我们需要解析个人资料页面的响应才能找到头像图片的 URL。为了处理此类配置,选项面板提供了 `Dynamic Location Configuration`,其中包含一个 `URI Regex` 和一个包含 `Start Identifier` 及 `End Identifier` 的 `Parse Http Response Configuration`。因此,File Upload 插件将调用 `URI Regex` 中提到的 URI,然后使用 `Start Identifier` 和 `End Identifier` 解析响应。`URI Regex` 字段还通过 `${fileName}` 支持动态文件名
有关 FileUpload 插件配置的详细信息,请观看以下视频:[OWASP ZAP FileUpload addon](https://www.youtube.com/watch?v=3bHjrpbLQmA)
### 注意:
此插件会向目标应用程序发送大量请求,因此可能会影响目标应用程序的性能。请务必仅在非生产环境中运行此插件。
## 联系我们
如有任何疑问/Bug 或改进建议,请在本仓库中提出 issue,或在 [OWASP ZAP Developer Group](https://groups.google.com/g/zaproxy-develop) 中提问。
对于任何其他类型的问题,请发送电子邮件至 karan.sasan@owasp.org
## 特别感谢
此插件深受 [Upload-Scanner](https://github.com/portswigger/upload-scanner) 的启发,并使用了 Upload-Scanner 扩展的许多概念。
标签:CISA项目, JS文件枚举, OWASP ZAP, PE 加载器, SasanLabs, TypeScript, Web安全, 后台面板检测, 域名枚举, 域名枚举, 安全插件, 对称加密, 恶意文件检测, 攻击面测试, 文件上传安全, 文件上传漏洞, 网络信息收集, 网络安全, 网络安全审计, 自动化审计, 蓝队分析, 隐私保护