ofCMS代码审计
字数 1123 2025-08-03 10:57:01

ofCMS代码审计报告

1. 系统概述

ofCMS是一个基于Java的内容管理系统,本次审计发现了多个安全漏洞,包括路径遍历、任意文件上传和SQL注入等严重问题。

2. 目录结构分析

审计开始时首先分析了系统的主要目录结构,重点关注后台管理登录系统。

3. 漏洞详情

3.1 管理员账号枚举漏洞

位置:后台管理登录系统

发现过程

  • 全局搜索登录功能代码
  • 发现账号正确与否的提示信息不同

风险

  • 攻击者可以通过不同的错误提示枚举出有效的管理员账号
  • 虽然系统有登录次数限制,但仍存在信息泄露风险

3.2 路径遍历漏洞

位置com/ofsoft/cms/admin/controller/cms/TemplateController.java

漏洞代码分析

// 获取参数
String dir = getPara("dir");
// 直接拼接路径
File file = new File(getSiteTemplateResourcePath() + dir);
// 读取文件

关键问题

  • 直接拼接网站路径和用户输入的dir参数
  • 未对../进行过滤,导致可以跳出目录限制

利用方式

http://localhost:8080/ofcms-admin/admin/cms/template/getTemplates.html?file_name=web.xml&dir=../../&dir_name=

影响

  • 可读取服务器上任意文件
  • 可能导致敏感信息泄露

3.3 任意文件上传漏洞

位置com/ofsoft/cms/admin/controller/cms/TemplateController.java

请求参数

http://localhost:8080/ofcms-admin/admin/cms/template/save.json?dirs=./&res_path=&file_name=1.txt&file_content=1231afdsfsdfs

文件后缀处理机制

  • 位于com/ofsoft/cms/core/handler/ActionHandler
  • 对非static目录下的文件会进行后缀名处理
  • 会将suffix数组中的值置空:.html, .jsp, .json

风险

  • 可上传任意文件内容
  • 虽然限制了部分危险后缀,但仍可能通过其他方式执行恶意代码

3.4 SQL注入漏洞

位置com/ofsoft/cms/admin/controller/system/SystemGenerateController.java

漏洞代码

// 直接执行用户输入的SQL
update(getPara("sql"));

问题

  • 直接获取用户输入的SQL语句并执行
  • 没有任何过滤或参数化处理

影响

  • 可执行任意SQL语句
  • 可能导致数据泄露、篡改或删除

4. 修复建议

  1. 管理员账号枚举

    • 统一登录失败提示信息
    • 实现更严格的登录限制机制
  2. 路径遍历

    • 对用户输入的路径参数进行规范化处理
    • 检查并过滤../等特殊字符
    • 限制文件访问范围
  3. 文件上传

    • 实施严格的白名单文件类型检查
    • 限制上传目录的权限
    • 对上传内容进行安全检查
  4. SQL注入

    • 使用参数化查询或预编译语句
    • 实现最小权限原则,限制数据库账户权限
    • 对动态SQL进行严格的输入验证

5. 总结

本次审计发现了ofCMS系统中多个严重安全漏洞,攻击者可利用这些漏洞获取系统敏感信息、上传恶意文件或执行任意SQL语句。建议开发者立即修复这些问题,并在开发过程中加强安全编码实践。

ofCMS代码审计报告 1. 系统概述 ofCMS是一个基于Java的内容管理系统,本次审计发现了多个安全漏洞,包括路径遍历、任意文件上传和SQL注入等严重问题。 2. 目录结构分析 审计开始时首先分析了系统的主要目录结构,重点关注后台管理登录系统。 3. 漏洞详情 3.1 管理员账号枚举漏洞 位置 :后台管理登录系统 发现过程 : 全局搜索登录功能代码 发现账号正确与否的提示信息不同 风险 : 攻击者可以通过不同的错误提示枚举出有效的管理员账号 虽然系统有登录次数限制,但仍存在信息泄露风险 3.2 路径遍历漏洞 位置 : com/ofsoft/cms/admin/controller/cms/TemplateController.java 漏洞代码分析 : 关键问题 : 直接拼接网站路径和用户输入的 dir 参数 未对 ../ 进行过滤,导致可以跳出目录限制 利用方式 : 影响 : 可读取服务器上任意文件 可能导致敏感信息泄露 3.3 任意文件上传漏洞 位置 : com/ofsoft/cms/admin/controller/cms/TemplateController.java 请求参数 : 文件后缀处理机制 : 位于 com/ofsoft/cms/core/handler/ActionHandler 对非 static 目录下的文件会进行后缀名处理 会将 suffix 数组中的值置空: .html , .jsp , .json 风险 : 可上传任意文件内容 虽然限制了部分危险后缀,但仍可能通过其他方式执行恶意代码 3.4 SQL注入漏洞 位置 : com/ofsoft/cms/admin/controller/system/SystemGenerateController.java 漏洞代码 : 问题 : 直接获取用户输入的SQL语句并执行 没有任何过滤或参数化处理 影响 : 可执行任意SQL语句 可能导致数据泄露、篡改或删除 4. 修复建议 管理员账号枚举 : 统一登录失败提示信息 实现更严格的登录限制机制 路径遍历 : 对用户输入的路径参数进行规范化处理 检查并过滤 ../ 等特殊字符 限制文件访问范围 文件上传 : 实施严格的白名单文件类型检查 限制上传目录的权限 对上传内容进行安全检查 SQL注入 : 使用参数化查询或预编译语句 实现最小权限原则,限制数据库账户权限 对动态SQL进行严格的输入验证 5. 总结 本次审计发现了ofCMS系统中多个严重安全漏洞,攻击者可利用这些漏洞获取系统敏感信息、上传恶意文件或执行任意SQL语句。建议开发者立即修复这些问题,并在开发过程中加强安全编码实践。