朋友的公司想购买kingcms的授权,让我帮忙看下。发现kingcms很长一段时间没更新了,憋了一段时间放出了最新版的k9(2014-12-13更新),官网下下来学习一下。
在wooyun上看到了几个漏洞,如: WooYun: kingcms最新版sql注入漏洞
注入点:POST /apps/content/index.php HTTP/1.1
注入参数:where 问题文件在 /apps/content/index.php
当$cmd分别等于'categroy','content','model','tag'时,会产生4个注入点,这里以$cmd=tag时为例进行说明。
又调用了kc_validate,再去看看
因为在使用kc_get得到where时,参数type是0,因此,kc_validate的参数type也是0,也就使得kc_validate返回true。也就是说再得到where时,没有对where进行类型的检验,可以引入单引号,造成了注入。
$_POST['where']进入$db->getRows,去看看$db->getRows
在执行sql语句之前,也没有过滤,这里就造成了注入。
Kingcms可以报错,因此
Payload:
注入成功,见下图