朋友的公司想购买kingcms的授权,让我帮忙看下。发现kingcms很长一段时间没更新了,憋了一段时间放出了最新版的k9,官网下下来学习一下。
在wooyun看到了几个漏洞,如:http://wooyun.org/bugs/wooyun-2010-043520
这里的越权大礼包包括删除网站所有会员、重置所有会员密码、修改所有会员用户名。
0x00:先来看看获得相关权限的绕过方法吧
Kingcms使用
$u=new user;
$u->auth_role('XXX');
来验证用户是否具有XXX的权限,关键是user类。
/user/user.class.php,user的构造方法如下
上面代码的第二处注释的地方,要获得需要操作的userid,要计量$sign=md5($get_userid.SITEURL.kc_config('system.salt')); 其中的参数$get_userid是用户输入,SITEURL是当前域名,不包含www等二级域名,[小写],kc_config('system.salt')是系统默认的,定值。这样,这里就可以绕过了。使得$ischeck=false。
在第4处注释处,因为$ischeck=false,所以,用户已登陆,USERID输入10000(kingcms系统的超级管理员id),就获得了管理员的所有权限了。
0x01:下面看看如何删除所有会员
/user/manage.php
控制userid,从10001开始,步进为1,遍历就可以把所有会员全部删除了。
过程见下图
0x02:下面看看如何重置所有会员密码
/user/manage.php
控制userid,从10001开始,步进为1,遍历就可以把重置所有会员的密码了。
过程见下图
0x03:下面看看如何修改所有会员用户名
/user/manage.php
控制userid和POST[‘username’],从10001开始,步进为1,遍历就可以修改所有会员的用户名了。
过程见下图