环境下载:https://github.com/c0ny1/upload-labs/releases
1. 前端检验上传类型
通过抓取数据包修改 filename 进行绕过
2. 校验 MIME 类型
修改 Content-Type 为图片的类型
3. 特殊的后缀名
需要修改配置来支持解析,实战可能不解析。
4. 上传 .htaccess 绕过
上传的文件名没有重命名,可以利用 .htaccess 来绕过
5. 后缀名大小写绕过
6. 后缀名+空格绕过
7. 后缀名 + 点. 绕过
8. Windows 特性绕过 ::$DATA
9. Apache 解析漏洞
在Apache 2.0.x <= 2.0.59,Apache 2.2.x <= 2.2.17,Apache 2.2.2 <= 2.2.8中Apache 解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断。
10. 后缀名双写绕过
代码中会把 php 替换为空,所以可以利用双写进行绕过
11. GET 请求的 %00截断绕过
1、PHP版本小于5.3.4
2、magic_quotes_gpc设置Off
12. POST 请求的 %00 截断
输入 %00 然后 URL 解码
13 - 14 - 15. 文件包含图片马
需要图片头,可以直接使用 GIF89a
进行文件包含
16. 图片二次渲染
上传图片会被渲染,默认copy的图片马会把 phpinfo 追加到图片后面,通过上传图片再把图片下载回来,发现 phpinfo 被渲染掉了,所以需要在 phpinfo 插入到没被渲染的位置,同时不能破坏图片。建议使用 GIF 文件
17. 条件竞争
设置 null payload 进行条件竞争
18. 条件竞争
通过条件竞争让文件没有重命名,然后配置解析漏洞或者文件包含
19. CVE-2017-15715
https://www.leavesongs.com/PENETRATION/apache-cve-2017-15715-vulnerability.html
在 windows 没复现成功