1(前端js绕过)
弹窗,先看看有没有js有,禁用js
禁用后就可以上传php文件了,然后我们就去访问文件,成功
2(MIME绕过)
先上传一个php文件试试,不行,.htaccess不行,
试试MIME类型,上传一个2.php文件,然后抓包改包,更改其Content-Type为image/jpeg得到
然后访问
3(文件后缀数字绕过)
提示带数字的php后缀没被禁用,所以我们上传一个带数字的php文件
成功
4(.htaccess绕过)
提示缺少了.htaccess,所以上传.htaccess文件
写一个.htaccess文件,主要是为了将想上传的木马文件作为php语言来解析
<FilesMatch "1.png">
setHandler application/x-httpd-php
</FilesMatch>
上传后,将一个名为1.png且内容为一句话木马上传到靶场中,就可以进行链接了
5(利用.user.ini已知文件)
这一关禁用了.htaccess文件
本关没有过滤.user.data文件,且在目录下存在一个已知的php文件,可以通过.user.data文件配置使原有的php文件包含webshell
第一步:构造.user.ini文件并上传
auto_prepend_file=1.png
这里稍作等待后再上传文件1.png,使文件生效
上传后,我们就进行访问那个已知的文件,然后就可以执行websehll了
6(大小写绕过)
将该题的源代码和前几关的源代码进行对比就可以发现,它缺少了大小写转换
第五关的:
第六关
既然没有大小写的转换,就可以利用这个漏洞来传入phP文件
7(利用空格绕过)
和第六关相比,可以看到这里没有进行首尾去空的处理,所以我们就利用空格来绕过检查
但是Windows的文件命名规则里限定了不许有空格,所以用抓包的方法在文件名末尾加上空格然后在去浏览器中传参访问
8(.绕过)
与第七关相比,又缺失了点的检查
所以加上点,同样由于Windows的命名规则,我们需要在bp中改包
9(::DATA绕过)
这里源码缺失::DATA的检查,所以直接在文件的后缀名加上::$DATA
10(后缀处理综合)
这一关也只对文件的后缀进行了处理,但是处理仅仅只有一遍,所以就讲其叠用
11(双写后缀名)
该题的提示是删除文件后缀名的某些字符,那么我们就双写后缀名来让他删
想要的后缀名是php,我们就写为pphphp,这样就将中间的php删掉,而两端的p和hp就组成了php,但是没有第二次处理了,所以就最终的后缀名是php
12(00截断)
看源代码,将最后一个点后面的作为后缀名来检查,白名单,bp抓包,改包
改前:
改后: