文件上传漏洞简介、upload-labs靶场过关技巧。
文件上传漏洞简介
1 | File Upload,即文件上传漏洞,通常是由于对上传文件的类型、内容没有进行严格的过滤、检查, |
upload-labs靶场过关技巧
1、Pass-01 前端 js 检测
1 | 解题思路:(绕开前端 js 检测) |
2、Pass-02 Content-type 检测
1 | 解析方法: |
3、Pass-03 .htaccess 文件解析规则绕过
1 | 上传图片马再上传.htaccess 文件 |
4、Pass-04 文件重写绕过
1 | 首先当前关卡黑名单绕过,可使用 Pass-03 的方式进行绕过。下面尝试使用文件重写绕过: |
首先写入空文件,burpsuite 修改文件名:webshell.php:.jpg 此时写入空文件 webshell.php
重定向符号可以使用:<或<<<或>>>或>><
文件内容重写,burpsuit 重新上传修改文件名:webshell.< 此时写入文件内容。
5、Pass-05 大小写绕过
1 | 1. 可以利用 没有进行大小写 进行绕过 ,将 1.php 改为 1.phP 上传 |
6、Pass-06 空格绕过
1 | 对比第五关检测了大小写绕过,另外删除了一个过滤函数,trim()函数, |
7、Pass-07 Windows 特性自动去除文件名最后的.
1 | 对比第六关增加了 trim()函数过滤空白字符或其他预定义字符。 |
8、Pass-08 Windows 备用数据流绕过
1 | 这道题利用的是 Windows 下 NTFS 文件系统的一个特性, |
9、Pass-09 嵌套绕过
1 | 前面的都过滤了。所以判断代码执行逻辑,去掉.之后去掉空格然后还剩下个.就可以绕过。 |
10、Pass-10 双写绕过
1 | 双写绕过 |
11、Pass-11 00 截断(GET)
1 | 00 截断必须要求: |
修改后重启生效。
1 | POST /upload-labs/Pass-11/index.php?save_path=../upload/webshell-m.php.%00 |
12、Pass-12 00 截断(POST)
1 | 和上一题一样,只不过 save_path 位置从 GET 换到了 POST 中。需要使用 0x00 进行绕过。 |
1 | Content-Disposition: form-data; name="upload_file"; filename="webshell.jpg" |
找到我们增加的空格位置。
修改成 00
最终写入 webshell.php
13、Pass-13 图片马
1 | 直接上传图片马即可,无法利用所以仅提供绕过策略。 |
14、Pass-14 图片马
1 | 和第 13 一样但是只能上传 gif。 |
15、Pass-15 图片马
1 | 和第 13 一样 |
16、Pass-16 二次渲染绕过
1 | 准备 1 张 gif 图片,然后上传到目标服务器,再下载到本地, |
17、Pass-17 条件竞争
1 | 产生原因是文件上传到服务器之后存放于临时目录,校验完合法性再进行删除, |
注:线程数量不要开太高。否则靶机很容易达到上限。
本文作者:
kur08a
本文链接: https://kur08a.github.io/2022/06/13/file-upload/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
本文链接: https://kur08a.github.io/2022/06/13/file-upload/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
![知识共享许可协议](https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png)