通达OA任意用户登录漏洞复现
漏洞简介:
在 logincheck_code.php 文件,变量 UID 为攻击者可控,攻击者可改变 UID 参数,从而控制该 SQL 语句返回 USER 表中指定 uid参数的用户信息,便可通过伪造参数来达到登录任意用户的目的。
该漏洞可获取任意用户session,包括系统管理员
影响版本:
通达OA2017
11.X<11.5版本
参考链接:
https://www.cnblogs.com/Rain99-/p/12762755.html
https://www.cnblogs.com/null1433/p/12765914.html
http://www.tongda2000.com/oa/myoa2019/manual/03管理员手册/安装及卸载.html
漏洞poc:
通达OA环境:https://pan.baidu.com/s/1QFAoLxj9pD1bnnq3f4I8lg 提取码:ousi
漏洞工具:https://github.com/NS-Sp4ce/TongDaOA-Fake-User
使用方法:python3 POC.py -v (2017|11) -url url
漏洞复现:
1.环境搭建。(安装步骤参考第三个链接)
2.访问http:192.168.159.139/general/login_code.php,并使用burp抓包获取code_uid。
3.再访问 http://192.168.159.139/logincheck_code.php,将GET包转换成POST包。
4.改为POST包后,将Cookie全部删除。(如果没有就不用这一步。)
5.将获取的codeuid复制过来,格式如下图所示。提交 code_uid 参数进行伪造 ,获取 PHPSESSID。
6.最后访问登录后的页面:http://192.168.1.113/general/index.php
7.替换PHPSESSID参数即可登录成功。
拓展:
1.使用工具获取PHPSESSID参数。
python3 POC.py -v 2017 -url http://192.168.159.139
2.访问http://192.168.159.139/general/index.php?isIE=0&modify_pwd=0,burp抓包拦截。
3.将Cookie替换为工具获取到的PHPSESSID参数,取消拦截。
4.登录成功。