通达OA<11.5版本漏洞分析与复现
字数 732 2025-08-25 22:58:35

通达OA <11.5版本漏洞分析与复现文档

漏洞概述

通达OA版本低于11.5存在一个身份验证绕过漏洞,攻击者可以通过伪造参数实现任意用户登录。

受影响版本

通达OA版本低于11.5,特别是文中提到的11.3版本。

漏洞分析

漏洞文件

logincheck_code.php文件存在安全缺陷。

关键代码分析

  1. UID参数可控

    • 第28行:UID变量由攻击者控制,可操纵SQL语句返回USER表中指定uid参数的用户信息
  2. 会话赋值

    • 第172行:对用户信息进行session赋值,攻击者只需绕过redis验证即可伪造登录
  3. codeuid生成与处理

    • 第12行:随机生成codeuid
    • 第35行:通过set_cache方法将标识id插入redis缓存
    • 第37行:输出codeuid

复现环境

  • 服务器:Windows Server 2008
  • 软件版本:通达OA 11.3
  • 下载地址:百度网盘(提取码: ousi)

漏洞复现步骤

第一步:获取code_uid

访问以下URL获取code_uid

http://[目标IP]/general/login_code.php

第二步:伪造请求

向以下URL发送POST请求,伪造code_uid参数:

http://[目标IP]/logincheck_code.php

POST数据包含获取到的code_uid参数。

第三步:获取PHPSESSID

从第二步的响应中获取PHPSESSID参数。

第四步:伪造登录

访问登录后页面,将cookie修改为获取到的PHPSESSID即可实现任意用户登录。

防御措施

  1. 升级到通达OA 11.5或更高版本
  2. logincheck_code.php文件进行严格参数验证
  3. 加强会话管理机制
  4. 实施输入验证和过滤

参考

  • 原始漏洞分析文章发布于2020年4月29日
  • 漏洞浏览数:14095+
通达OA <11.5版本漏洞分析与复现文档 漏洞概述 通达OA版本低于11.5存在一个身份验证绕过漏洞,攻击者可以通过伪造参数实现任意用户登录。 受影响版本 通达OA版本低于11.5,特别是文中提到的11.3版本。 漏洞分析 漏洞文件 logincheck_code.php 文件存在安全缺陷。 关键代码分析 UID参数可控 : 第28行: UID 变量由攻击者控制,可操纵SQL语句返回USER表中指定uid参数的用户信息 会话赋值 : 第172行:对用户信息进行session赋值,攻击者只需绕过redis验证即可伪造登录 codeuid生成与处理 : 第12行:随机生成 codeuid 第35行:通过 set_cache 方法将标识id插入redis缓存 第37行:输出 codeuid 复现环境 服务器:Windows Server 2008 软件版本:通达OA 11.3 下载地址:百度网盘(提取码: ousi) 漏洞复现步骤 第一步:获取code_ uid 访问以下URL获取 code_uid : 第二步:伪造请求 向以下URL发送POST请求,伪造 code_uid 参数: POST数据包含获取到的 code_uid 参数。 第三步:获取PHPSESSID 从第二步的响应中获取 PHPSESSID 参数。 第四步:伪造登录 访问登录后页面,将cookie修改为获取到的 PHPSESSID 即可实现任意用户登录。 防御措施 升级到通达OA 11.5或更高版本 对 logincheck_code.php 文件进行严格参数验证 加强会话管理机制 实施输入验证和过滤 参考 原始漏洞分析文章发布于2020年4月29日 漏洞浏览数:14095+