通达OA任意文件上传和文件包含漏洞导致RCE详细代码审计分析及Poc构造复现
字数 1956 2025-08-18 11:39:26

通达OA任意文件上传和文件包含漏洞导致RCE分析及复现

漏洞概述

通达OA系统存在两个高危漏洞组合可导致远程命令执行(RCE):

  1. 任意文件上传漏洞:影响通达OA 2013/2013增强/2015/2016/2017/v11版本
  2. 文件包含漏洞:影响通达OA v11版本

这两个漏洞组合利用可导致攻击者在未授权情况下上传Webshell并执行系统命令,默认以System权限运行。

漏洞背景

2020年3月,通达OA官方论坛发布紧急通知,多个用户反馈服务器遭到勒索病毒攻击,表现为:

  • 主页被篡改
  • 站点文件扩展名被修改
  • 生成勒索提示文本文件

攻击者利用这两个漏洞组合上传Webshell后门,进一步释放勒索病毒。

漏洞分析

1. 任意文件上传漏洞 (ispirit\im\upload.php)

漏洞原理

  1. 原代码中存在逻辑漏洞:当$P参数存在且非空时,可绕过auth.php的登录验证
  2. 文件上传时对后缀名的检查不严格,仅检查是否为.php,可通过.phtml.cpt等绕过

补丁修复内容

  1. 强制包含auth.php进行登录验证
  2. 增加与数据库中的Session校验

漏洞利用条件

  • P参数非空
  • DEST_UID非空且为数字
  • UPLOAD_MODE为1或2或3
  • 上传文件后缀名不为.php

2. 文件包含漏洞 (ispirit/interface/gateway.php)

漏洞原理

  1. 代码解析JSON数据时,如果url键存在且值非空,且包含general/ispirit/module/路径
  2. 未对../进行过滤,导致目录遍历
  3. 可包含之前上传的恶意文件

补丁修复内容

  • 增加对..符号的检查,防止目录遍历

漏洞复现步骤

环境准备

  • 通达OA v11.3版本

复现过程

  1. 利用任意文件上传漏洞上传Webshell

    • 构造请求满足四个条件:
      • P参数非空
      • DEST_UID非空且为数字
      • UPLOAD_MODE为1/2/3
      • 上传文件后缀名不为.php(如.phtml)
    • 上传路径示例:attach/im/2003/72566742.a.phtml
  2. 利用文件包含漏洞执行Webshell

    • 通过gateway.php包含上传的文件
    • 使用../进行目录遍历,包含上传的Webshell文件
  3. 绕过disable_functions限制

    • 通达OA开启了disable_functions,禁用了常见命令执行函数
    • 需要采用特殊方法绕过,如使用LD_PRELOAD等技术

修复建议

  1. 官方补丁

    • 下载并安装对应版本的补丁:
      • V11版: http://cdndown.tongda2000.com/oa/security/2020_A1.11.3.exe
      • 2017版: http://cdndown.tongda2000.com/oa/security/2020_A1.10.19.exe
      • 2016版: http://cdndown.tongda2000.com/oa/security/2020_A1.9.13.exe
      • 2015版: http://cdndown.tongda2000.com/oa/security/2020_A1.8.15.exe
      • 2013增强版: http://cdndown.tongda2000.com/oa/security/2020_A1.7.25.exe
      • 2013版: http://cdndown.tongda2000.com/oa/security/2020_A1.6.20.exe
  2. 临时缓解措施

    • 限制对ispirit目录的访问
    • 监控异常文件上传行为
    • 定期检查服务器上的可疑文件

技术细节补充

文件上传黑名单绕过

通达OA仅检查后缀名是否为.php,可通过以下方式绕过:

  • .phtml
  • .cpt
  • .php5
  • .pht

disable_functions绕过技术

通达OA禁用了常见命令执行函数,可参考以下绕过方法:

  • LD_PRELOAD技术
  • ImageMagick漏洞利用
  • PHP-FPM利用
  • 反序列化漏洞利用

参考资源

  1. 通达OA官方论坛公告: http://club.tongda2000.com/forum.php?mod=viewthread&tid=128367
  2. disable_functions绕过: https://www.cnblogs.com/-qing-/p/10944118.html
  3. 漏洞分析工具: https://github.com/SecurityCN/Vulnerability-analysis/tree/master/通达OA3月漏洞
通达OA任意文件上传和文件包含漏洞导致RCE分析及复现 漏洞概述 通达OA系统存在两个高危漏洞组合可导致远程命令执行(RCE): 任意文件上传漏洞 :影响通达OA 2013/2013增强/2015/2016/2017/v11版本 文件包含漏洞 :影响通达OA v11版本 这两个漏洞组合利用可导致攻击者在未授权情况下上传Webshell并执行系统命令,默认以System权限运行。 漏洞背景 2020年3月,通达OA官方论坛发布紧急通知,多个用户反馈服务器遭到勒索病毒攻击,表现为: 主页被篡改 站点文件扩展名被修改 生成勒索提示文本文件 攻击者利用这两个漏洞组合上传Webshell后门,进一步释放勒索病毒。 漏洞分析 1. 任意文件上传漏洞 (ispirit\im\upload.php) 漏洞原理 : 原代码中存在逻辑漏洞:当 $P 参数存在且非空时,可绕过 auth.php 的登录验证 文件上传时对后缀名的检查不严格,仅检查是否为 .php ,可通过 .phtml 、 .cpt 等绕过 补丁修复内容 : 强制包含 auth.php 进行登录验证 增加与数据库中的Session校验 漏洞利用条件 : P 参数非空 DEST_UID 非空且为数字 UPLOAD_MODE 为1或2或3 上传文件后缀名不为 .php 2. 文件包含漏洞 (ispirit/interface/gateway.php) 漏洞原理 : 代码解析JSON数据时,如果 url 键存在且值非空,且包含 general/ 、 ispirit/ 或 module/ 路径 未对 ../ 进行过滤,导致目录遍历 可包含之前上传的恶意文件 补丁修复内容 : 增加对 .. 符号的检查,防止目录遍历 漏洞复现步骤 环境准备 通达OA v11.3版本 复现过程 利用任意文件上传漏洞上传Webshell 构造请求满足四个条件: P 参数非空 DEST_UID 非空且为数字 UPLOAD_MODE 为1/2/3 上传文件后缀名不为 .php (如 .phtml ) 上传路径示例: attach/im/2003/72566742.a.phtml 利用文件包含漏洞执行Webshell 通过 gateway.php 包含上传的文件 使用 ../ 进行目录遍历,包含上传的Webshell文件 绕过disable_ functions限制 通达OA开启了 disable_functions ,禁用了常见命令执行函数 需要采用特殊方法绕过,如使用 LD_PRELOAD 等技术 修复建议 官方补丁 : 下载并安装对应版本的补丁: V11版: http://cdndown.tongda2000.com/oa/security/2020_ A1.11.3.exe 2017版: http://cdndown.tongda2000.com/oa/security/2020_ A1.10.19.exe 2016版: http://cdndown.tongda2000.com/oa/security/2020_ A1.9.13.exe 2015版: http://cdndown.tongda2000.com/oa/security/2020_ A1.8.15.exe 2013增强版: http://cdndown.tongda2000.com/oa/security/2020_ A1.7.25.exe 2013版: http://cdndown.tongda2000.com/oa/security/2020_ A1.6.20.exe 临时缓解措施 : 限制对 ispirit 目录的访问 监控异常文件上传行为 定期检查服务器上的可疑文件 技术细节补充 文件上传黑名单绕过 通达OA仅检查后缀名是否为 .php ,可通过以下方式绕过: .phtml .cpt .php5 .pht disable_ functions绕过技术 通达OA禁用了常见命令执行函数,可参考以下绕过方法: LD_ PRELOAD技术 ImageMagick漏洞利用 PHP-FPM利用 反序列化漏洞利用 参考资源 通达OA官方论坛公告: http://club.tongda2000.com/forum.php?mod=viewthread&tid=128367 disable_ functions绕过: https://www.cnblogs.com/-qing-/p/10944118.html 漏洞分析工具: https://github.com/SecurityCN/Vulnerability-analysis/tree/master/通达OA3月漏洞