Pass-1
在桌面生成1.png文件,内容为:
<?php
phpinfo();
?>
上传1.png,用bp抓包,修改后缀png为php,然后放包:
复制文件路径到新窗口,打开成功
Pass-2
步骤同一
Pass-3
观察源码 $deny_ext = array('.asp','.aspx','.php','.jsp');
上传1.png,bp抓包,修改后缀png为phtml,放包,复制文件路径到新窗口,打开成功。
Pass-4
观察源码 $deny_ext = array(...);发现没有过滤.htaccess
在桌面生成.htaccess.png文件,内容为:
SetHandler application/x-httpd-php
上传.htaccess.png,bp抓包,修改后缀.htaccess.png为.htaccess,放包,上传1.png,复制文件路径到新窗口,打开成功:
Pass-5
观察源码 $deny_ext = array(...);发现没有过滤.user.ini
在桌面生成.user.ini文件,内容为:
auto_prepend_file=1.png
先上传.user.ini,再上传1.png,复制文件路径到新窗口,在路径中将1.png改为readme.php,打开成功:
Pass-6
观察源码,发现没有使用strtolower()函数转换小写,上传1.png,用bp抓包,修改后缀png为Php,放包,复制文件路径到新窗口,打开成功。
Pass-7
观察源码,发现没有使用trim()函数去除空格,上传1.png,用bp抓包,修改后缀png为php ,php的后面有一个空格,放包,复制文件路径到新窗口,打开成功。
Pass-8
观察源码,发现没有使用deldot()函数去删除文件名末尾的点,上传1.png,用bp抓包,修改后缀png为php.,php的后面有一个点,放包,复制文件路径到新窗口,打开成功。
Pass-9
观察源码,发现没有使用str_ireplacet()函数去除特殊字符串::$DATA,上传1.png,用bp抓包,修改后缀png为php::$DATA,放包,复制文件路径到新窗口,去掉路径末尾的::$DATA,打开成功。
Pass-10
观察源码,发现既有trim()函数,又有deldot()函数,上传1.png,用bp抓包,修改后缀png为php. .,php的后面为点空格点,放包,复制文件路径到新窗口,打开成功。