JAVA代审-shishuocms
字数 1342 2025-08-29 08:30:18

ShishuoCMS 漏洞分析与利用教学文档

1. 系统概述

ShishuoCMS 是一个较老的开源内容管理系统,在 Gitee 上有 2.8k Star。本教学文档将详细分析该系统中发现的多个安全漏洞,包括任意文件上传、存储型 XSS 和 CSRF 漏洞。

2. 环境搭建

2.1 获取源码

  • 项目地址: https://gitee.com/shishuo/CMS_old
  • 下载源码到本地

2.2 配置开发环境

  1. 使用 IntelliJ IDEA 打开项目
  2. 等待 Maven 自动加载依赖
  3. 修改数据库配置文件: src/main/resources/shishuocms.properties

2.3 数据库设置

  1. 创建对应数据库
  2. 导入 SQL 文件: sql/install.sql

2.4 运行配置

  1. 配置 Tomcat 服务器
  2. 启动项目
  3. 默认管理员账号: shishuocms/shishuocms

3. 漏洞分析

3.1 任意文件上传漏洞

漏洞位置

/main/java/com/shishuo/cms/action/manage/ManageUpLoadAction.java

漏洞详情

  1. 文件上传功能未对文件后缀进行有效检测
  2. 仅依赖 checkPhotoFile 方法进行 MIME 类型校验
  3. 上传路径为 tomcat/bin 目录

漏洞验证步骤

  1. 构造上传请求数据包
  2. 上传恶意文件
  3. 文件上传成功,位于 tomcat/bin 目录

利用方式

  1. 覆盖 Tomcat 启动程序
  2. 实现命令执行

修复建议

  1. 实现严格的文件后缀白名单校验
  2. 限制上传目录
  3. 对上传文件进行重命名

3.2 存储型 XSS 漏洞

漏洞位置

后台目录列表功能

漏洞详情

  1. 系统使用 jquery_1.10.2
  2. 文章编辑功能已做防护(特殊字符实体编码)
  3. 后台目录创建功能存在 XSS 漏洞

漏洞验证步骤

  1. 创建新目录
  2. 在名称字段插入 XSS payload(如 "xss_poc")
  3. 触发点:管理员管理→管理员权限→目录删除

利用方式

  1. 窃取管理员会话
  2. 执行管理员权限操作

修复建议

  1. 对所有用户输入进行 HTML 实体编码
  2. 实现 CSP 策略

3.3 CSRF 漏洞

漏洞详情

  1. 系统未使用 CSRF 防护组件
  2. 代码中无 CSRF 防护措施

漏洞验证步骤

  1. 使用 Burp Suite 抓取请求
  2. 生成 CSRF POC
  3. 模拟管理员点击
  4. 验证操作是否执行

利用方式

  1. 结合存储型 XSS 进行攻击
  2. 执行任意管理员操作

修复建议

  1. 实现 CSRF Token 机制
  2. 验证 Referer 头
  3. 使用 SameSite Cookie 属性

4. 组合攻击场景

4.1 攻击链

  1. 利用存储型 XSS 获取管理员会话
  2. 通过 CSRF 执行敏感操作
  3. 利用文件上传漏洞获取服务器权限

4.2 防御措施

  1. 实施纵深防御策略
  2. 定期安全审计
  3. 及时更新安全补丁

5. 总结

ShishuoCMS 存在多个高危安全漏洞,攻击者可利用这些漏洞实现从 XSS 到服务器完全控制的全链条攻击。建议用户及时修复或升级系统,并实施全面的安全防护措施。

6. 参考

  1. OWASP Top 10 安全风险
  2. Java Web 应用安全开发指南
  3. 常见 Web 漏洞防护手册
ShishuoCMS 漏洞分析与利用教学文档 1. 系统概述 ShishuoCMS 是一个较老的开源内容管理系统,在 Gitee 上有 2.8k Star。本教学文档将详细分析该系统中发现的多个安全漏洞,包括任意文件上传、存储型 XSS 和 CSRF 漏洞。 2. 环境搭建 2.1 获取源码 项目地址: https://gitee.com/shishuo/CMS_ old 下载源码到本地 2.2 配置开发环境 使用 IntelliJ IDEA 打开项目 等待 Maven 自动加载依赖 修改数据库配置文件: src/main/resources/shishuocms.properties 2.3 数据库设置 创建对应数据库 导入 SQL 文件: sql/install.sql 2.4 运行配置 配置 Tomcat 服务器 启动项目 默认管理员账号: shishuocms/shishuocms 3. 漏洞分析 3.1 任意文件上传漏洞 漏洞位置 /main/java/com/shishuo/cms/action/manage/ManageUpLoadAction.java 漏洞详情 文件上传功能未对文件后缀进行有效检测 仅依赖 checkPhotoFile 方法进行 MIME 类型校验 上传路径为 tomcat/bin 目录 漏洞验证步骤 构造上传请求数据包 上传恶意文件 文件上传成功,位于 tomcat/bin 目录 利用方式 覆盖 Tomcat 启动程序 实现命令执行 修复建议 实现严格的文件后缀白名单校验 限制上传目录 对上传文件进行重命名 3.2 存储型 XSS 漏洞 漏洞位置 后台目录列表功能 漏洞详情 系统使用 jquery_ 1.10.2 文章编辑功能已做防护(特殊字符实体编码) 后台目录创建功能存在 XSS 漏洞 漏洞验证步骤 创建新目录 在名称字段插入 XSS payload(如 "xss_ poc") 触发点:管理员管理→管理员权限→目录删除 利用方式 窃取管理员会话 执行管理员权限操作 修复建议 对所有用户输入进行 HTML 实体编码 实现 CSP 策略 3.3 CSRF 漏洞 漏洞详情 系统未使用 CSRF 防护组件 代码中无 CSRF 防护措施 漏洞验证步骤 使用 Burp Suite 抓取请求 生成 CSRF POC 模拟管理员点击 验证操作是否执行 利用方式 结合存储型 XSS 进行攻击 执行任意管理员操作 修复建议 实现 CSRF Token 机制 验证 Referer 头 使用 SameSite Cookie 属性 4. 组合攻击场景 4.1 攻击链 利用存储型 XSS 获取管理员会话 通过 CSRF 执行敏感操作 利用文件上传漏洞获取服务器权限 4.2 防御措施 实施纵深防御策略 定期安全审计 及时更新安全补丁 5. 总结 ShishuoCMS 存在多个高危安全漏洞,攻击者可利用这些漏洞实现从 XSS 到服务器完全控制的全链条攻击。建议用户及时修复或升级系统,并实施全面的安全防护措施。 6. 参考 OWASP Top 10 安全风险 Java Web 应用安全开发指南 常见 Web 漏洞防护手册