通达OA前台管理员任意登录漏洞 2017版本



      通达OA是一种利用较为广泛的办公系统。由于使用uid作为身份标识,攻击者可以通过构造

恶意请求,直接绕过登录认证逻辑,将网站管理员身份伪装成登录OA系统。通达OA官方网站

安全补丁发布于今年4月17日。通达OA<11.5.200417版,通达OA2017版。


 
这次重现的2017版,则着重分析了这个版本,但是原理基本上是相同的,仅仅文件路径不一样

罢了。从POC的代码分析来看,该漏洞包括以下四个文件:
 
 
rcode.php/ispirit/login_rcode.php
 
General/login_rcode_scan.php是什么意思?
 
rcode_check.php/ispirit/login_rcode_login_check.php。
 
 
General/index.php
 
第一,通达OA源码利用了elipse5加密,这里推荐利用SeaneDelipse,这个软件利用也很简单

,创建两个目录,一个存放加密的文件,另一个用于输出解密结果。此文件用于获取rcodeuid

参数,如果不存在,则自动生成一个rcodeuid,并将其写到CODE_LDAun_PV缓存(通达OA利

用Redis缓存系统,它还提供对缓存的用法),但显示该参数到18行的位置,使用户能够获得该

参数的值,从而可以忽略后续的认证。
 
 
该文件允许用户控制输入的关键参数uid,在通达OA版本中存在漏洞,后台数据库中与uid对应

的用户是admin管理员帐户。由于我们在第一个文件中获得的rcodeuid存储在CODE_LDAun_

PV中,因此在返回时需要指出source变量是pc,而在这里,username是admin,type变量是co

nfirm,原因如下:在这里,我们利用了两个前面存储的缓存中的内容,一个获取rcodeuid,另

一个获取通过post传入的uid,而在前面的步骤中,需要利用type,这就是为什么需要将type设

置为confirm。
分享: