1.通过审查源码,发现这是白名单过滤,只允许上传 jpg png gif 的文件。
2.突破点就在于 $_GET['save_path']
这里, 路径没有处理直接拼接上去的。所以可以利用%00截断绕过 。
要使用%00截断必须要满足两个条件
php版本小于5.3.4 详情关注CVE-2006-7243
php的magic_quotes_gpc为OFF状态 //如果不修改将无法上传成功,默认为ON
phpstudy可以按图中步骤切换phpatudy
关闭 magic_quotes_gpc 的方法,关于 magic_quotes_gpc
3.说了那么多直接干
burpsuite拦截包进行修改文件保存路径
4.文件上传成功
5.直接打开链接文件
是因为 � 这个符号引起的。而且路径也不对
调整路径之后访问,执行成功。
%00的作用就是截断后面的字符串,在url中%00表示ascll码中的0 ,而ascii中0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已结束,所以就不会再读取info.php后面的内容,就把/upload/info.php当成是存储路径存入服务器中。