17.upload-lab
一.
前端代码进行防护,浏览器禁用js,或者使用burp修改文件后缀
二.
后端代码进行防护,使用burp修改文件content-type
三.
利用前提:需要apache的配置文件里面能够解析php5等后缀,然后直接上传.php5等后缀文件
# cd /opt/lampp/etc
# vim httpd.conf
Addtype application/x-httpd-php .php .phtml .php5
:wq
# /opt/lampp/lampp restart
四.
1.后台代码没有第三关的重命名,后缀从后往前执行.bbb解析不了,执行.aaa,执行.php
直接上传shell.php.aaa.bbb文件
2.没有拒绝.htaccess后缀(利用前提条件:1.mod_rewrite模块开启。2.AllowOverride All)
先上传一个.htaccess文件,内容如下:
SetHandler application/x-httpd-php
这样所有文件都会当成php来解析
五.
后台代码去掉文件末尾的点
使用burp修改文件后缀为. .绕过,访问时使用.php.(空格)
六.
后台源码没有将后缀转换成小写(使用前提:windows环境)
使用大小写绕过,直接上传shell.PHP
七.
后台源码没有对空格作过滤(使用前提:windows环境)
使用burp修改文件后缀添加空格
八.
后台源码没有对点作过滤
使用burp抓包修改文件后缀增加点即可
九.
后台源码没有对::$data作过滤(使用前提:Windows服务器且磁盘为NTFS)
使用burp抓包修改文件后缀增加::$data
十.
点空格点绕过
十一.
后台源码把php后缀替换为空
使用双写后缀.pphphp绕过
十二.
后台源码为白名单
可采用%00截断,burp抓取数据包,更改为.php%00.jpg,即可绕过(条件:php版本小于5.3.4,php的magic_quotes_gpc为OFF状态)
十七.
后台源码为二次渲染,生成新的图片
手动制作图片马上传
十八.