通达OA<11.5版本漏洞分析与复现
- 复现环境
服务器window2008 软件版本11.3
11.3版本下载地址:
链接:https://pan.baidu.com/s/1QFAoLxj9pD1bnnq3f4I8lg
提取码:ousi
- 漏洞分析
通过官网发布的补丁对比确认新版本修改了如下文件:
在logincheck_code.php文件中
代码第28行,变量UID为攻击者可控,攻击者可改变UID参数,从而控制该SQL语句返回USER表中指定uid参数的用户信息。
在172行对用户信息进行session赋值,攻击者只需绕过代码中的redis验证,便可通过伪造参数来达到登录任意用户的目的。
在第12行随机生成了一串codeuid,然后在第35行通过set_cache方法将该标识id插入到redis缓存中,最后在第37行将codeuid进行了输出。
- 本地复现
一 首先访问
http://192.168.1.113/general/login_code.php
获取到 code_uid
二 再访问
http://192.168.1.113/logincheck_code.php
用post请求提交code_uid 参数进行伪造
获取到PHPSESSID参数
三 最后访问登入后页面
http://192.168.1.113/general/index.php
把cookie改成伪造的参数即可登入成功