当前位置: 首页 > news >正文

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 

相关文章:

  • 【JavaEE】Spring Boot配置文件
  • Docker基础入门(一)
  • STM32 单片机常见的 8 种输入输出模式
  • 解决远程主机允许路由转发 【原理扫描】:将/proc/sys/net/ipv4/ip_forward 置为0
  • HarmonyOS学习第20天:让应用“找准方向”的地图与定位秘籍
  • 【实战ES】实战 Elasticsearch:快速上手与深度实践-8.1.2近似最近邻(ANN)算法选型
  • 用Python写一个天气预报小程序
  • C++学习——顺序表(四)
  • SpringMVC (一)基础
  • 日志系统项目——准备工作了解类的设计模式如单例模式、工厂模式、代理模式
  • 图片隐写wp
  • 【eNSP实战】交换机和路由器配置链路聚合
  • 【MySQL】数据类型
  • API调用comfyui工作流,做一个自己的app,chatgpt给我写的前端,一键创建自己的卡通形象,附源码
  • 利用axios库的爬虫程序如何使用HTTP
  • 【Go | 从0实现简单分布式缓存】-7:增加etcd和gRPC功能
  • Windows控制台函数:设置区域属性函数FillConsoleOutputAttribute()
  • 静态路由配置实验相关过程
  • SOAP和REST的区别
  • 全方位 JVM 调优参数详解
  • 特朗普与泽连斯基通话
  • 陈龙带你观察上海生物多样性,纪录片《我的城市邻居》明播出
  • 荷兰外交大臣费尔德坎普将访华
  • 永久基本农田竟沦为垃圾场,湖南湘潭回应:全面启动专项整治
  • 陕西:未来一周高温持续,继续发布冬小麦干热风风险预警
  • 商务部:对原产于美国、欧盟、台湾地区和日本的进口共聚聚甲醛征收反倾销税