通达OA<11.5版本漏洞分析与复现
字数 732 2025-08-25 22:58:35
通达OA <11.5版本漏洞分析与复现文档
漏洞概述
通达OA版本低于11.5存在一个身份验证绕过漏洞,攻击者可以通过伪造参数实现任意用户登录。
受影响版本
通达OA版本低于11.5,特别是文中提到的11.3版本。
漏洞分析
漏洞文件
logincheck_code.php文件存在安全缺陷。
关键代码分析
-
UID参数可控:
- 第28行:
UID变量由攻击者控制,可操纵SQL语句返回USER表中指定uid参数的用户信息
- 第28行:
-
会话赋值:
- 第172行:对用户信息进行session赋值,攻击者只需绕过redis验证即可伪造登录
-
codeuid生成与处理:
- 第12行:随机生成
codeuid - 第35行:通过
set_cache方法将标识id插入redis缓存 - 第37行:输出
codeuid
- 第12行:随机生成
复现环境
- 服务器: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即可实现任意用户登录。
防御措施
- 升级到通达OA 11.5或更高版本
- 对
logincheck_code.php文件进行严格参数验证 - 加强会话管理机制
- 实施输入验证和过滤
参考
- 原始漏洞分析文章发布于2020年4月29日
- 漏洞浏览数:14095+