漏洞简介:

通达OA(Office Anywhere网络智能办公系统)是中国通达公司的一套协同办公自动化软件。
通达OA v11.5.200417之前版本中存在安全漏洞,该漏洞源于系统对用户传入的数据过滤不严。攻击者可借助特制的HTTP请求利用该漏洞登录任意用户(包括:Admin用户),从而控制通达OA系统,甚至有可能结合其它漏洞控制整个服务器。

漏洞公告:

目前厂商已发布升级补丁以修复漏洞,补丁获取链接:
https://www.tongda2000.com/download/sp2019.php

漏洞详情

通达OA存在代码逻辑
`

  1. $UID = intval($_POST["UID"]);
  2. ...
  3. $query = "SELECT * from USER where UID='$UID'";
  4. if($ROW = mysql_fetch_array($cursor)){
  5. $USER_ID = $ROW["USER_ID"];
  6. $PWD = $ROW["PASSWORD"];
  7. $USERNAME = $ROW["USER_NAME"];
  8. }
  9. ...
  10. $LOGIN_UID = $UID;
  11. $LOGIN_USER_ID = $USER_ID;
  12. $LOGIN_BYNAME = $BYNAME;
  13. $LOGIN_USER_NAME = $USERNAME;
  14. $_SESSION["LOGIN_UID"] = $LOGIN_UID;
  15. $_SESSION["LOGIN_USER_ID"] = $LOGIN_USER_ID;
  16. $_SESSION["LOGIN_BYNAME"] = $LOGIN_BYNAME;
  17. $_SESSION["LOGIN_USER_NAME"] = $LOGIN_USER_NAME;

当UID由用户控制造成用户权限提升
通达OA安全漏洞 - 图1
POC:
https://github.com/NS-Sp4ce/TongDaOA-Fake-User

使用方法

  1. python3 poc.py -v 版本 -url url
  2. 运行并获取到可用的SESSIONID
  3. 替换浏览器Cookie中的SESSIONID即可实现登录为admin