Wordpress plugins wp-catpro Arbitrary File Upload Vulnerability分析

2013-02-25 23:15:40 22 6044 1


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:思考
不明白作者为什么不使用随机文件名,这样就不会存在这样的问题,的却有很多的理由可以拒绝安全,但是、、、、、、、

关于作者

wepeng8篇文章530篇回复广西大学(南宁) 学生

http://www.weikunpeng.com/

评论22次

要评论?请先  登录  或  注册