Wordpress plugins wp-catpro Arbitrary File Upload Vulnerability分析
0x1:漏洞URL
http://1337day.com/exploit/20256
0x2:Exploit分析
看下图吧!
打开漏洞文件:
{贴代码}<从40到116行,应该是后来才加上的安全码,也就是说现在漏洞没法利用了(准确的说需要知道安全码才能利用了,呵呵~~~),这不重要,我们主要是想看看,继续分析。
$extension_whitelist = array("jpg", "gif", "png"); // Allowed file extensions
$valid_chars_regex = '.A-Z0-9_ !@#$%^&()+={}\[\]\',~`-'; // Characters allowed in the file name (in a Regular Expression format)
135行是设置的白名单,也就是说只允许上传"jpg", "gif", "png"这三种后缀的文件。
136行是过滤的字符。(181行会用到)
下面是181行的代码:
$file_name = preg_replace('/[^'.$valid_chars_regex.']|\.+$/i', "", basename($_FILES[$upload_name]['name']));
呵呵,没有过滤”.”。
194到207行,后缀名检测。(所以我们只能上传上面提及的几种文件,但是这难不倒我们。)
231到246行,作者其实是有安全意识的,但是没有考虑到Apache处理文件时的特性(现在作者知道了也不愿意改,见注视),导致文件名为“random_name.php.gif”的文件会被当作PHP文件来执行。
于是我们就可以上传类似的文件来实现攻击了。
0x3:思考
不明白作者为什么不使用随机文件名,这样就不会存在这样的问题,的却有很多的理由可以拒绝安全,但是、、、、、、、







评论22次
3l就坐,撸过
前排就座,谢过!