upload-labs通关攻略 【Pass-01~Pass-19】
注意:GitHub中upload-labs有多个版本:19关、21关、23关。版本不同,关卡的顺序也很可能不同。此次例子是21关。
项目地址:https://github.com/c0ny1/upload-labs
一、Pass-01 【js前端检测的绕过】
1. 打开Pass-01
访问:ip/upload-labs/,选择第一关 【upload-labs 是你解压后文件夹的名称】
2. 两种方式:前端删除检测方法、BurpSuite抓包修改文件后缀名
2.1 前端删除检测方法
将编写的一句话木马文件保存为php文件,点击上传发现不允许上传php文件,且在前端判断
回车,并在页面点击上传。
在该页面位置,右击---在新标签页打开,将
将访问链接在蚁剑进行连接。点击连接,可看到上传的木马文件。
2.2 上传正常格式的木马文件,BP抓包,修改上传文件的后缀名为php
将木马文件后缀改为jpg,打开BP,点击上传进行抓包。
将jpg后缀改为php。然后点击放行,关闭BP。
即可查看到页面显示的图标。
右键新标签页打开,使用蚁剑进行连接。
二、 Pass-02 【文件类型校验】
两种方法:
一种是上传php文件,抓包修改Content-Type;
另一种是上传jpg文件,抓包修改后缀名为php。
1. 1上传php文件,抓包修改Content-Type
<?php phpinfo(); ?>
1.2 点击放行,关闭BP拦截
1.3 显示出上传文件位置,右键新标签页打开
发现一句话木马执行,显示了phpinfo()信息,即上传成功。
2.1 上传jpg文件,抓包修改后缀名为php
将php文件后缀名修改为jpg,打开BP,点击上传拦截数据包。
2.2 点击放行,结束拦截,新标签页打开
结果和第一种方法相同,一句话木马执行成功。
三、Pass-03 【黑名单绕过】
上传php3、php5、phtml等的后缀木马
1. 将木马文件php上传
页面提示:不允许上传 .php,.asp,.aspx,.jsp文件 (黑名单)
2. 将php木马文件后缀名修改为php3或者php5
将木马文件 1.php3上传
四、Pass-04 【.htaccess绕过 】
.htaccess是apache的配置文件。
文件中配置上传的图片用php解析器是解析,上传正常的图片后缀的木马并且上传.htaccess配置文件。
注意:此关,下载的靶场中无法实现。在FOFA搜索一个在线的靶场,实验此关。
upload-labs
1. 创建.htaccess文件,写入配置
创建txt文件,写入内容,修改名称为:.htaccess。
2. 将木马文件后缀名改为jpg,先上传.htaccess文件,再上传jpg木马文件
五、Pass-05 【点 空格 点 绕过】
查看源代码,发现首尾去掉空格,去掉文件名末尾的点 去除字符串::$DATA
1. 上传1.php文件,打开BP拦截,修改后缀为 .php.[空格].
2. 点击放行,关闭拦截,在新标签页打开图片
发现一句话木马执行成功,即绕过成功 。
图中URL /1.php/. 把点删除,不影响结果
六、Pass-06 【大小写绕过】
查看源代码,未对文件名后缀名大小写处理 采用大小写绕过。
注意;第6关 修改后缀名后,上传文件后,无法访问
换靶场尝试 upload-labs
1. 把1.php文件修改为 1.Php文件,点击上传文件
右键新标签页打开,发现后缀名大小写不影响执行效果
七、Pass-07 【空格绕过】
查看源代码发现只有空格未处理
1. 上传1.php文件,打开BP拦截,点击上传,进行捕包
2. 在php文件后缀名末尾添加空格,点击放行,关闭拦截
3.页面上传文件显示位置,右键---新标签页打开,发现一句话木马执行成功,通关成功。
因为网站URL会将文件最后的空格自动删除,所以上传绕过后,结果显示不影响。
八、Pass-08 【点绕过】
查看源代码 发现对点未进行处理 可采用点绕过
1. 上传1.php木马文件,打开BP拦截,点击上传
2.在后缀名末尾添加一个点,点击放行,关闭拦截
3. 右键,在新标签页打开
发现一句话木马执行成功,点绕过,上传成功
九、Pass-09 【::$DATA文件流标识符绕过】
查看源代码,发现对::$DATA未进行处理
1. 上传1.Php木马文件,打开BP拦截,点击上传
2. 在php文件后缀名末尾添加::DATA标识符
3. 点击放行,关闭BP拦截
4. 新标签页打开图像,发现403
删除::$DATA,即可访问成功 因为加上标识符,被认为文件流,不执行
删除后,访问成功,一句话木马执行成功,::$DATA绕过成功。
十、Pass-11 【文件后缀名双写绕过】
上传后缀名双写的1.pphphp。执行代码从大往右,会将php删除,剩余的p 和hp拼接成新的php从而实现绕过。
新标签页访问图像,一句话木马执行成功
十一、Pass-12 【%00截断 POST 请求行 save_path】
发现 POST 请求行 save_path,采用%00截断
输入:upload/5.php%00 HTTP/1.1
注意:此关靶场只能做到这,接下来完整的换个靶场:upload-labs
%00截断【一般用于GET请求行 直接使用%00截断即可】
请求行(首行)输入:../upload/ 5.php%00
直接放行,关闭拦截,访问图像即可
URL中截断符之后的内容删除也不影响结果
十二、Pass-13 【%00截断 POST】%00需要URL解码
页面只允许上传.jpg|.png|.gif类型文件,因此将1.php文件改为1.jpg文件进行上传
POST方式,在请求包中间出现 ../upload/
此时使用%00截断,但需要进行URL解码
输入:../upload/5.php%00 将%00进行URL解码
解码后,点击放行,关闭拦截
注意:此关靶场只能练习到此 换个靶场体验完整过程: upload-labs
上传1.jpg文件
修改:../upload/5.php%00 对%00URL解码
解码后,放行,关闭拦截,访问图像
十三、Pass-14 【上传图片马 检测文件头 GIF89a】
图片马不能独自实现绕过,必须使用文件包含漏洞,进行访问。
输入:保存为1.jpg 作为上传动图文件的图片马
GIF89a
<?php phpinfo(); ?>
上传文件,新标签页打开图像
新标签页打开图像,复制其路径 :upload/3920250312001238.gif
(此靶场中upload目录和include.php处于同一级目录upload-labs下)
通过文件包含漏洞进行访问:
输入:ip/upload-labs/include.php?file=upload/图片名称.jpg,即可
十四、Pass-15 【图片马上传】
同Pass-14,上传含动态文件头GIF89a的1.jpg木马文件
上传文件,新标签页打开图像
新标签页打开图像,复制其路径 :upload/3120250312001727.gif
(此靶场中upload目录和include.php处于同一级目录upload-labs下)
通过文件包含漏洞进行访问:
输入:ip/upload-labs/include.php?file=upload/图片名称.jpg,即可
十五、Pass-16 【图片马上传 】
准备好的图片马,上传
十六、Pass-17 【图片马上传 二次渲染】
上传准备好的图片马
新标签页打开图像
新标签页打开图像,复制其路径 :upload/25247.jpg
(此靶场中upload目录和include.php处于同一级目录upload-labs下)
通过文件包含漏洞进行访问:
输入:ip/upload-labs/include.php?file=upload/图片名称.jpg,即可
十七、Pass-18 【条件竞争1】
准备好木马文件1.php
十八、Pass-19 【条件竞争2】
十九、Pass-20 【/.绕过】
1. 上传1.php文件,保存文件名为:1.php/. 点击上传
右键,新标签页打开图像 发现一句话木马实现,/.绕过成功
Pass-21,与Pass-20均为多了一个保存文件名称 具体情况不明,暂时不练和分享了
upload-labs靶场基本练习分享结束了,其中第10关、第16关、第18关、第19关、第21关未完成和分析。
其他几关分享结束,希望对各位读者有所帮助。
谢谢!!! -----------------2025/3/12 1:09