kkcms1.371代码审计
看微信公众号有个审计这个CMS的文章。跟着复现了一下,大体来说这个CMS还是比较安全的
but,部分功能写法完全不统一。写sql查询的时候有些用了PDO,有些直接带入查询
预处理分析
除了编辑器以外的php都会引用system/inc.php或者system/library.php
- library.php 处理函数和单双引号转义处理
- inc.php 引用了system目录里的所有文件
大概分析
首先是install/index2.php。写入数据库和生成install.lock文件的处理
首先加载了/system/library.php
可以看到,对所有的请求对单双引号进行了转义
if (!defined('PCFINAL')) {
exit('Request Error!');
}
if (!get_magic_quotes_gpc()) {
if (!empty($_GET)) {
$_GET = addslashes_deep($_GET);
}
if (!empty($_POST)) {
$_POST = addslashes_deep($_POST);
}
$_COOKIE = addslashes_deep($_COOKIE);
$_REQUEST = addslashes_deep($_REQUEST);
}
之后index2.php的流程
1.判断了install.lock文件是否存在
2.将数据库配置信息写入到system/data.php
3.往数据库导入sql
由于过滤了特殊符号,这里单引号没法闭合。无法利用
安装完默认后台:admin/123456
xss
template\wapian\movie.php
getPageHtml函数是用来模板渲染的
看了一下payload主要还是$yourneed
参数,跟踪发现来自360.php
无任何过滤
payload:m="11111111111"><script>prompt(/xss/)</script><
貌似payload并不会因为addslashes_deep函数而失效
个人信息修改处,无任何过滤造成存储型xss
payload:”><script>prompt(/xss/)</script><"
申请友链的存储xss
后台处理
留言板和这个差不多一致,省略
SQL注入
虽然使用了addslashes_deep函数。导致登录处和代单/双引号的sql无法闭合,数据库也不是GBK
but还是有一处盲注
cookie爆破后台绕过验证码
任意文件读取
在开启了 allow_url_fopen和allow_url_include开启后会变成RCE
小结
这套CMS靠着一些奇怪的方法来导致原本可利用的漏洞无法利用,例如后台功能大部分可以越权利用。但是另外的函数找不到,导致利用失败
总的来说,这套CMS有点水
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。
文章标题:kkcms1.371代码审计
本文作者:九世
发布时间:2021-03-31, 00:49:39
最后更新:2021-03-31, 01:55:14
原始链接:http://jiushill.github.io/posts/de5a64f.html版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。