Pass-01
首先,我们测试能否直接上传php文件。
发现不能,接下来抓包(Burpsuite)测试。
发现抓包不成功,这时候我们猜测,该关卡设置了前端检测。
我们可以将php文件改为jpg文件上传,抓包更改后缀,尝试是否可以成功绕过。
成功绕过,这是由于该关卡只设置了前端检测,没有设置后端检测。
Pass-02
本关考验的是文件的类型,我们抓包,修改Content-Type一栏,即可绕过。
Pass-03
此关与php环境(推荐使用5.2.17版本)有关。
需打开httpd.conf,设置改行,使数据库可以将。php,.phphtml,.php3等后缀识别为.php文件。
这时再回去抓包修改后缀名为.php3,成功绕过。
Pass-04
此关需要是.htacccess绕过
先写一份.htaccess,内容如下,该文件的作用是将上传的test.jpg用php执行
<Files Match "test.php">
SetHandler application/x-httpd-php
</FilesMatch>
先后上传文件.htaccess,test.jpg(注意环境问题还是在5.2.17下)。
Pass-05
本关考验大小写,我们将文件名改为test.phP上传文件。
Pass-06
本关考验空格绕过,思路就是在文件后面加上空格,但由于windows特性,文件名后空格会被直接删除,不能直接上传.php后加空格,所以我们要用burp抓包然后再添加空格。
Pass-07
本关考验文件末尾加点。windows文件后缀名不能加’.',一样使用burp抓包然后后缀加一个点。
Pass-08
本关考验加字符串绕过,与前面关卡一样,在burp中抓包在文件名后加::$DATA。
Pass-09
本关可以采用点和空格相结合绕过,与前面关卡一样,在burp中抓包在文件名后加". ."。
Pass-10
本关是一个黑名单验证,意思是如果上传了黑名单内后缀的文件,就会把后缀名删除,没了后缀名也就无法正常解析,所以我们采用多写绕过,即将文件名末尾后缀改为.pphphp,它删除掉中间的php后后缀仍然为php。
Pass-11
本关为白名单,本关只能上传.jpg文件,那么我们可以使用‘%00‘截断符绕过,抓包可知为POST型,我们可以利用白名单修改其路径。
注意:php版本小于5.3.4,php的magic_quotes_gpc为OFF状态。
Pass-12
本关仍属于白名单绕过,思路就和第十一关一样,但是post方式不会自行解码,所以要对%00进行编码。burp可以进行快捷编码,选中%00右键convert selection即可进行快速url编码。
Pass-13
本关需要图片马绕过。
详情参考https://www.cnblogs.com/1ink/p/15101706.html
用图片+php来组成一个图片马,可以直接用notepad打开一个图片在后面添加代码组成图片马,也可以使用cmd命令。
copy hahah.jpg /b + test.php /a webshell.jpg
上传wbeshell.jpg文件。(注:要使用自带的include.php识别图片马)
Pass-14
与13关思路一致,只需要将其改为gif文件
Pass-15
与14关基本一致,一样的操作,若不成功,可能是环境的问题。
Pass-16
该关需要一个二次渲染图片马,目的是防止上传文件时,文件内容打乱后木马仍能作用。
Pass-17
该关卡意为只要上传.php文件就会被删除,那么我们可以在一句话木马被上传之前访问就不会被删除,即竞争上传绕过。我们可以利用brup多线程发包然后不断在浏览器去访问,按F5一直刷新,如果在上传的瞬间访问到了,它就无法删除。
<?php @fputs(fopen('123.php',w),'<?php phpinfo();?>');?>
Pass-18
这关题本身便有错误,因为图片上传路径出错了,我们需要去修改。
重启靶场之后就修复成功。之后与17关步骤一致。