Henry's Blog
Henry's Blog
MKCMS代码审计小结

MKCMS代码审计小结


原文首发于先知社区MKCMS代码审计小结 – 先知社区

MKCMS V6.2    (以下源码来自网络)
MKCMS米酷影视源码6.2开源CMS
下载地址链接:https://pan.baidu.com/s/1cZX5x9SbcXMCMXismfH4ow  提取码:k3ox
备用下载地址:https://www.lanzous.com/ib7zwmh

0x00 全局过滤分析

/system/library.php:使用addslashes转义入参, 注意到$_SERVER未被过滤

image.png

0x01 验证码重用

/admin/cms_login.php验证码处的逻辑如下,比较session中的验证码和输入的是否一致,不一致就进入alert_href,这个js跳转,实际是在刷新页面

image.png

跳转后就会刷新验证码,然而我用的是burp,默认是不解析js的
全局搜索这个$_SESSION['verifycode'],发现只在/system/verifycode.php有赋值,也就是说,如果使用验证码后,我们不跟随js跳转,就不会重置验证码,验证码也就能被重复使用

image.png

使用burp重放,的确如此,验证码形同虚设

0x02 前台注入1:/ucenter/repass.php

看了下历史的漏洞,在/ucenter/repass.php有个越权修改密码的洞(CVE-2019-11332),跟进去发现原来还有注入,以下是分析过程

前面说到全局对$_POST存在addslash的过滤(加\转义),上面又把参数给stripslashes了(去掉\),这不就是个注入?

image.png

后来复盘,实际上,这个问题coolcat师傅早在去年就在先知上提出来了:某KCMS5.0 代码审计 (前台注入&任意用户密码重置),师傅nb!

0x03 前台注入2:/ucenter/active.php

/ucenter/active.php?verify=1存在注入

sqlmap直接跑即可

0x04 前台注入3:/ucenter/reg.php

/ucenter/reg.phpname参数,存在注入

0x05 任意用户密码找回(密码可被穷举)

任意用户密码找回
这个问题主要是/ucenter/repass.php代码里,找回密码的逻辑有问题,第10行查询到usernameemail能对应上之后,14行就直接重置密码了。。。而且密码的范围在12行有写,只有90000种可能,重置之后,burp跑一下不就ok了?(当然要结合验证码重用才能有效爆破)

image.png

0x06 备份文件路径可猜解

这个备份功能也太顶了,而且还是那么简单的文件名
/backupdata/movie.sql

全局搜DATA_NAME变量,是安装时候设置的数据库名

image.png

默认的DATA_NAME值是movie

image.png

0x07 前台文件上传

/editor/php/upload_json.php?dir=file
源码如下

可以上传列表里的文件,只是无法拿shell

出现上传链接

0x08 凭据硬编码

/ucenter/yanzhengma.php, 把密码硬编码在里面了,经过测试,可登录(狗头保命

image.png

0x09 越权

/ucenter/mingxi.php
会员卡信息仅由用户传入的参数确定,一定存在越权漏洞

image.png

CVE Request : English Version

Source code can be downloaded  at  https://www.lanzous.com/ib7zwmh

深度截图_选择区域_20200411125718.png

0x00:Lead In

This CMS is kinda funny, coz there is a universal filter addslashes  in /system/library.php

While it uses stripslashes somewhere by mistake, let’s do a global search about it, we get** 3 SQL injections **

image.png

0x01:PreAuth SQL injection in /ucenter/repass.php

MKCMS V6.2 has SQL injection via the /ucenter/repass.php name parameter.

and it can be automated exploited by sqlmap namely

And this can be tracked in 2019 via https://xz.aliyun.com/t/4189#toc-1  by CoolCat, so CVE request of this vuln won’t belong to me, I just wanna enrich the CVE database.

0x02:PreAuth SQL injection in /ucenter/active.php

MKCMS V6.2 has SQL injection via the /ucenter/active.php verify parameter.

Likewise, attackers can exploit it via sqlmap by typing

0x03:PreAuth SQL injection in /ucenter/reg.php

MKCMS V6.2 has SQL injection via the /ucenter/reg.php name parameter.h

Again, sqlmap can be used to automate the exploitation

0x04:Mitigation

remove the stripslashes() before the POST/GET param, thus we can’t exploit it unless the coding of MYSQL is GBK/GB2312, i.e.wide byte sql injection.
(In my opinion,  is there any need to escape the name? it has never been allowed at all ! 

发表评论

textsms
account_circle
email

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

Henry's Blog

MKCMS代码审计小结
MKCMS代码审计小结 原文首发于先知社区MKCMS代码审计小结 - 先知社区 MKCMS V6.2    (以下源码来自网络) MKCMS米酷影视源码6.2开源CMS 下载地址链接:https://pan.baidu.com/s/…
扫描二维码继续阅读
2020-04-20
%d 博主赞过: