kkcms1.371代码审计

  1. 预处理分析
  2. 大概分析
    1. xss
    2. SQL注入
    3. cookie爆破后台绕过验证码
    4. 任意文件读取
  3. 小结

看微信公众号有个审计这个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有点水

参考链接:https://mp.weixin.qq.com/s?__biz=MzU0MDg5MzIzMQ==&mid=2247485517&idx=1&sn=24b6f24b506ecaa64ec2897e8302ee7b


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。

文章标题:kkcms1.371代码审计

本文作者:九世

发布时间:2021-03-31, 00:49:39

最后更新:2021-03-31, 01:55:14

原始链接:http://jiushill.github.io/posts/de5a64f.html

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录