pass-01
第一种方法:

上传一句话木马
发现该文件不允许上传,请上传.jpg|.png|.gif类型的文件,当前文件类型为:.php

既然是js前端校验,那么我们就来看看源代码

可以看到js定义了一个白名单,只允许上传.jpg|.png|.gif格式的文件,并且对上传文件的后缀名同白名单做了对比校验。
对于js校验,我了解的有三种方式可以进行绕过
删除js校验代码
通过审查元素我们可以发现上传这里是调用了checkFile函数的将其删除即可


此时php文件上传成功


第二种方法:
先改文件后缀名通过js校验再抓包更改后缀上传至服务器


修改后:

此时上传成功

访问上传地址

pass-02
只需要用burp修改一下mime就能上传成功
(1) 上传1.php的文件
(2) 通过burp抓包,修改文件类型为image/jpeg、image/png、image/gif
(3) 再发包成功上传


此时上传成功

pass-03
(绕过php黑名单)
上传PHP文件失败,根据返回的页面数据,判断应该是做了简单的黑名单处理。所以我们可以使用一
些其他可解析的文件因此我可以找其他后缀名当做php文件执行。
符合的后缀包括 php、php3、php4、php5、phtml、pht等,有时候需要挨个进行尝试

打开配置文件---打开httpd.conf
修改代码,去掉注释符#

修改完成后保存重启即可

pass-04

本关过滤了所有可能的脚本文件后缀名,但唯独没有过滤.htaccess文件,我们可知先上传.htaccess文件
这种情况,我们可以尝试上传一个.htaccess配置文件,将4.png图片当作php代码进行解析,首先创建一个.htaccess文件,里面写上代码
SetHandler application/x-httpd-php
这串代码的意思是如果文件中有一个4.png的文件,他就会被解析为.php,把这个文件上传上去。
上传上去之后,我们在把图片用Notepad打开,里面写上php代码。再进行上传。
最后我们访问这个4.png文件


访问上传图片地址

pass-05
文件后缀绕过
根据Apache文件解析机制,从右向左开始解析文件后缀,若后缀名不可识别,则继续判断直到遇到可解析的后缀为止

上传后访问

pass-06
大小写绕过
这一关没有强制将大写转换为小写,所以我们可以上传纯大写或者大小写结合的后缀名

上传成功后访问

pass-07
直接看源代码,发现没有首尾去空。上传php文件,抓包在后面加空格。

上传成功后访问

pass-08
第八关我们可以发现没有删除文件名末尾的点,和第七关思路一样,就是把空格换成点
上传成功后访问

pass-09
第九关查看代码发现没有去除字符串::$DATA,和第七八关一样,直接上传,在数据包的php后面直接加上::$DATA

上传成功后访问

pass-10
这一关的思路是它没有循环验证,也就是说这些收尾去空,删除末尾的点,去除字符串::$DATA,转换为小写这些东西只是验证了一次。所以我们的绕过思路就很简单,在数据包中把后缀名改为.php. .说一下他的验证过程,首先他发现有一个点,这时会把他去掉,又发现有一个空格,也会把它去掉,我们这时还有一个点,也就是.php. 由于他只是验证一次,所以不会在去掉我们的点,这时就可以上传成功,也可以解析成功。

上传成功后访问

如果大家还有什么其他闯关思路请在评论区留言~~~