ac1d1c-a1fa1fa/cyberstruck/file-upload-testing
Claude Code and agent skill by ac1d1c-a1fa1fa/cyberstruck
- community
Checking that the SKILL.md file is still in the repository.
Install
npx vskill@latest install ac1d1c-a1fa1fa/cyberstruck/file-upload-testingSKILL.md
文件上传漏洞测试
概述
文件上传功能是Web应用常见功能,但存在多种安全风险。本技能提供文件上传漏洞的检测、利用和防护方法。
漏洞类型
1. 未验证文件类型
仅前端验证:
2. 文件内容未验证
仅检查扩展名:
3. 路径遍历
未过滤文件名:
4. 文件名覆盖
可预测的文件名:
测试方法
1. 基础检测
测试各种文件类型:
- .php, .jsp, .asp, .aspx
- .php3, .php4, .php5, .phtml
- .jspx, .jspf
- .htaccess, .htpasswd
测试双扩展名:
测试大小写:
2. 内容类型绕过
修改Content-Type:
Magic Bytes:
3. 解析漏洞
Apache解析漏洞:
IIS解析漏洞:
Nginx解析漏洞:
4. 竞争条件
文件上传后立即访问:
利用技术
PHP WebShell
基础WebShell:
一句话木马:
绕过过滤:
.htaccess利用
上传.htaccess:
然后上传shell.jpg(实际是PHP代码)
图片马
GIF图片马:
PNG图片马:
文件包含配合
如果存在文件包含漏洞:
绕过技术
扩展名绕过
双扩展名:
大小写:
特殊字符:
Content-Type绕过
修改请求头:
Magic Bytes绕过
添加文件头:
代码混淆
使用短标签:
使用变量:
工具使用
Burp Suite
- 拦截文件上传请求
- 修改文件名和内容
- 测试各种绕过技术
Upload Bypass
WebShell生成
验证和报告
验证步骤
- 确认可以上传恶意文件
- 验证文件可以执行
- 评估影响(命令执行、数据泄露等)
- 记录完整的POC
报告要点
- 漏洞位置和上传功能
- 可上传的文件类型和执行方式
- 完整的利用步骤和PoC
- 修复建议(文件类型验证、内容检查、安全存储等)
防护措施
推荐方案
- 文件类型白名单
``python ALLOWED_EXTENSIONS = {'jpg', 'png', 'gif'} ext = filename.rsplit('.', 1)[1].lower() if ext not in ALLOWED_EXTENSIONS: raise ValueError("File type not allowed") ``
- 文件内容验证
``python import magic file_type = magic.from_buffer(file_content, mime=True) if not file_type.startswith('image/'): raise ValueError("Invalid file content") ``
- 重命名文件
``python import uuid filename = str(uuid.uuid4()) + '.' + ext ``
- 隔离存储
- 文件存储在Web根目录外
- 通过脚本代理访问
- 禁用执行权限
- 文件扫描
- 使用杀毒软件扫描
- 检查文件内容
- 移除可执行权限
- 大小限制
``python MAX_SIZE = 5 * 1024 * 1024 # 5MB if file.size > MAX_SIZE: raise ValueError("File too large") ``
注意事项
- 仅在授权测试环境中进行
- 避免上传恶意文件到生产环境
- 测试后及时清理
- 注意不同服务器的解析差异
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/file-upload-testing/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/ac1d1c-a1fa1fa/cyberstruck/file-upload-testing)