翟功香 回答:
1.漏洞影响:攻击者可以通过构造请求,完成任意用户登录,包括管理员,登录之后可进一步上传恶意文件控制网站服务器。
2.影响版本:通达OA < 11.5版本
3.官方补丁下载地址:【通达OA】办公就用通达OA,通达OA官方网站_OA系统_协同办公
4.POC
漏洞分析
首先来看POC,这是POC里面最关键的一个函数来看看做了什么,访问/general/login_code.php是一张二维码
下载保存到本地,文本编辑器打开,图片中会有一个uid,取出来,然后构造成一个POST包发到/logincheck_code.php,会返回一个session,浏览器中替换session即可获得管理员权限
问题应该是出在logincheck_code.php文件中,来看这个文件,在12行直接从$_POST["UID"]中取值,然后在15行做了一个判断,判断如果不通过的话就exit,退出程序
然后下面就是从mysql中取数据,在然后赋值给session,整个过程一马平川。
然后再回过头来看if语句,主要代码在这一句,只要取出来的cache不为空,即可绕过if语句
TD::get_cache("CODE_LOGIN" . $CODEUID);
根据命名规则全局搜索一下,设置这个缓存的地方,这个就是我们POC里面出现的 login_code文件,设置了cache,并且输出了code_uid,访问页面即可获得,漏洞利用完成。