用途
该技能用于任意文件上传漏洞的检测、绕过和利用。当目标具有上传功能(头像、附件、导入)、multipart 表单或文件管理接口时使用。
主要能力
技能内容按阶段组织,覆盖以下能力:
- 上传功能发现与分析:寻找
<form enctype="multipart/form-data">或<input type="file">;常见端点包括/upload、/api/upload、/avatar、/import;收集允许的文件类型、上传后存储路径、服务器技术栈(PHP/Java/Python)。提示前端 JS 验证可直接绕过,真正的限制在后端。 - 基础上传测试:先上传正常文件(.txt)确认功能正常并记录返回的文件路径;访问上传的文件 URL 确认可访问;上传 .php 文件观察是否被拒绝;路径猜解包括
/uploads/、/upload/、/files/、/static/uploads/、/images/。 - 绕过决策树:针对扩展名限制(黑名单)可使用 .phtml/.php5/大小写/.php./双写;针对扩展名限制(白名单)可使用 .htaccess 覆盖(Apache)或 .user.ini(通用);针对 Content-Type 限制可改为 image/jpeg;针对文件头检查可使用 GIF89a + webshell;针对二次渲染检查可使用图片马(GIF 优先);三层都限制时可组合绕过:扩展名 + Content-Type + 文件头。
- Webshell Payload:PHP 示例
<?php system($_GET['cmd']); ?>,精简版(绕过关键字)<?=$_GET[1]?>;JSP 示例<%Runtime.getRuntime().exec(request.getParameter("cmd"));%>;ASP 示例<%eval request("cmd")%>。上传后验证示例:http://target/uploads/shell.php?cmd=id。 - .htaccess 攻击:两步法,先上传 .htaccess 配置 PHP 解析规则,再上传 shell.jpg。
使用方式
技能按 Phase 0 至 Phase 3 的顺序推进:先进行上传功能发现与分析,再进行基础上传测试,然后依据绕过决策树选择绕过方式,最后构造 Webshell Payload 并验证。深入参考(扩展名/Content-Type/Magic Bytes 绕过详解、路径穿越、.htaccess 覆盖、.user.ini 利用、图片马二次渲染绕过、ZIP 解压利用)指向 references/upload-bypass.md。
适用场景
目标存在上传功能(头像、附件、导入)、multipart 表单或文件管理接口时。
限制与注意事项
- 上传成功 ≠ 可利用:必须访问验证执行。
- 服务端可能 hash 重命名:从响应中获取新文件名。
- 记录每次尝试的扩展名和响应,快速排除无效绕过。
- 访问 .php 返回源代码说明该目录禁止执行,需要路径穿越或 .htaccess。
- 上传≠执行,需确认文件可被访问和解析,可配合文件包含(LFI)等其他漏洞执行上传的 webshell。
关于该技能的收费、价格、平台支持范围等信息,资料中暂未提供。