某套颜色 CMS 的几处后台 Getshell
2019-10-27 19:29:45 Author: mp.weixin.qq.com(查看原文) 阅读量:99 收藏

本文作者:1x2Bytes(信安之路红蓝对抗小组成员)

成员招募:信安之路红蓝对抗小组招募志同道合的朋友

在某资源站上发现一个专门搞颜色的 CMS (说啥专注 X 站),于是下载下来审计一波

CMS 的地址: 

d3d3LjljY21zLm5ldA==

下载 1.7 的版本,发现其并未与数据库交互,而是用一种叫 txtDB 的方式写数据然后读取数据,也正是因为这个地方导致后台 getshell

下载源码,直接访问会自动安装好,访问,因为有一些不可描述的内容,所以马赛克打得有点严

访问后台,发现没有一处上传点,只有一些广告添加和模板选择,大多数功能都很鸡肋

因为不使用数据库找 SQL 是没可能的了,一些提交数据地方也都用htmlspecialchars函数给处理了,查看功能发现一处填写流量统计代码的地方

/adminx/admin_Basicsetup/statistics.php

审计该文件,发现一处地方 在statistics.php 文件 第 52 行出 include一个变量 $ad_top_json_url

跟踪 $ad_top_json_url 变量声明的地方

在该文件第二行找到这个变量,值为JCCMS_ROOT."/Basicsetup/statistics.json"

Tips: JCCMS_ROOT 的值为 Jccms_json

流量统计代码保存在这个文件内,然后 include 了这个文件,那这样我们可以想到如果这个文件内是 php 代码,这样就可以实现 php 代码执行从而 getshell, 实践一下

发现了这一处代码执行后,想到这个 cms 还有一大堆 json 可以 include 于是搜索 include 的地方。

在文件adminx/admin_ad/ad.php 52 行处

包含的文件为 Jccms_json/ad/ad_js/ad.json

同时发现/class/cllass_ad_js.php 也包含了这个文件

如果直接访问/class/cllass_ad_js.php会报错,因为没有定义JCCMS_ROOT

查找调用这个函数的文件,发现 index.php 直接 include 了这个文件,导致直接可以 getshell

实践一下

以上是该 CMS3 处后台 RCE 的地方,该 cms 刚开始审计有点无处下手的感受,因为没有与数据库交互,很多地方也做了转义,但是如果仔细去看每个功能,会发现很多可以利用的地方,因为本人刚开始学审计.可能遗漏了很多可以审查的地方,希望各位表哥多多包容同时也希望跟我一样在学习审计的朋友能够耐心的去阅读源码。


文章来源: http://mp.weixin.qq.com/s?__biz=MzI5MDQ2NjExOQ==&mid=2247491740&idx=1&sn=1e48d7779e104460f897fe8d2b5bd701&chksm=ec1dd0b4db6a59a20e173571871600bf57333fd40eb6a8922d5bf51dff6686f08c76af720b25#rd
如有侵权请联系:admin#unsafe.sh