免责申明
本文章仅用于信息安全防御技术分享,因用于其他用途而产生不良后果,作者不承担任何法律责任,请严格遵循中华人民共和国相关法律法规,禁止做一切违法犯罪行为。
0x00 前言
这里影响版本是v7.5版本在官网可以直接下载最新版本,前一段时间不是发了一个帝国cms的任意文件删除的漏洞吗,当时在评分的时候只是给到了一个低危漏洞,没有混到证书,这里重新对他进行审计,因为帝国cms已经被各位师傅审了好多次了,靠常规的审计思路已经无法进行混证书了,之前的模板注入等方式或者别的一些rce的方式基本全部重复了(亲测有效)
可以在我公众号历史消息当中查找到文件删除漏洞
0x01审计过程
在审计的过程当中,还是进行敏感函数定位之后查看变量是否可控,这里全局搜索fputs写入函数,功能类似于fwrite函数.
这里我们跟进查看函数upload/e/install/data/fun.php下地643行代码
发现是将变量$data内容写入到一个变量$fp当中,查看到变量$fp是文件config/config.php文件当中,猜测是配置文件,猜测功能点为环境安装的功能点,其实看这个文件对应的目录install也知道这是一个环境安装的对应代码,这里我们继续看变量$data内容
均由$add方法控制,并且继续了替换对应内容,我们跟进$add变量。
这里发现$add是方法RepEcnsConfig的一个参数,查看哪里调用了方法RepEcmsConfig方法,上述全部的分析都是在这个方法当中,所以我们看哪里进行了调用就可以了,着重分析第一个参数是否可控。
发现在同文件的588行进行了调用方法RepEcmsConfig方法,但是调用这个方法是在Setup方法当中,于是再去查看哪里调用了Setup方法,并且查看这个方法的第一个参数
在文件upload/e/install/index.php当中进行了调用SetDb方法,并且是POST传参,所以我们上述$data内容可控,导致可以写入任意内容到config.php文件当中,再看这个代码是需要满足
enews为setdb的,猜测是数据库相关,结合文件位置以及文件名upload/e/install/index.php,猜测是环境安装的入口文件,这里进行验证,重装一次帝国CMS。
0x02漏洞复现
进行重新安装帝国CMS
哟吼!重装系统需要删除install.off文件,怎么办!之前哪个低危文件删除漏洞派上用场了,删除步骤以及过程就不详细写出来了,大家可以自查历史文章,这里进行删除之后继续重装。
在这里我们查看URL发现对应上了,enews等于setdb,但是在我圈起来的红框当中的信息要正常填写,如果在当中填写可能会造成一些无法正常安装等情况,我们在COOKIE前缀地方做手脚。先抓包!
先发一次包,查看config.php当中是什么样子的(毕竟不是一个空的文件写入了可以随心所欲)
就针对他继续修改,这里查看值laurk是我们可控的,但是单引号包裹,所以我们构造payload
再次进行发包尝试写入
查看config.php当中的文件内容
成功写入了危险函数,然后我们打开首页随便进行一些操作让他调用这个文件,直接访问是不可以的
成功写入!
0x03 完结
至此漏洞结束,漏洞也并没有重复,已经提交至CNVD漏洞平台!
这也是一个很常见的漏洞,在文件删除搭配重装漏洞,这个只是在此基础上进行了一个文件的写入
原文始发于微信公众号(进击安全):帝国CMS梅开二度代码审计(文件删除+重装写入)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论