Less-10
尝试发下php文件发现后缀被删除了,接收到的文件发现。
查看源码,发现str_ireplace()函数,这个函数作用就是,将文件黑名单后缀,改为空字符,文件就没有后缀名了,没有后缀名文件就不会执行。
这个函数是一次过滤,那么可以抓包,把文件后缀改为.pphphp这样在该函数检测时就是会检测到中间php,而使文件后缀留下,p和hp组成php后缀。
Less-11
查看源码发现是做了一个白名单,而且对于文件路径,进行一个随机命名,并拼接与存放路径,这里的存放路径是可以修改的,并且是get请求方法可以使用%00截断后边的拼接。
需要修改文件类型为白名单类型,还要修改文件存储路径修改是upload/shell.php%00
查看下就可以了
Less-12
条件:php<5.3.4
php.ini中的magic_quotes_gpc是off状态的
查看源码
和十一关相同,唯一就是post方法传参,那么我们是不能使用%00截断的,因为会直接输出出来,不进行截断,因此需要修改文件16机制代码在你构建好的upload后,将16进制代码改为00,意思就是0x00
Less-13
查看你源代码,发现是一个图片码,将php命令写入文件中,使用16进制代码
制作命令
copy shell.jpg /b + shell.php /a webshell.jpg
意思就是一个shell图片和一个shellphp文件,组成一个webshell图片文件
搜一下回显的图片地址,访问图片地址就可以了
写一个include.php传入,再利用它来解析图片##include.php
<?php/*
本页面存在文件包含漏洞,用于测试图片马是否能正常运行!
*/
header("Content-Type:text/html;charset=utf-8");$file = $_GET['file'];if(isset($file)){
include $file;
}else{
show_source(__file__);
}?>
访问地址就可以了
upload/include.php?file=./upload/图片名称
Less-14
查看源码注意到getimagesize函数,这个函数的意思是会读取图片文件16进制编码的图片系数
在脚本文件开头补充图片对应的头部值例如:GIF89a
然后绕过就行,和13类似