0x00 前言
通达OA(Office Anywhere网络智能办公系统)是由北京通达信科科技有限公司自主研发的协同办公自动化软件,是与中国企业管理实践相结合形成的综合管理办公平台。
0x01 漏洞简介及影响版本
3月13日,通达OA在官方论坛发布通告称,近日接到用户反馈遭到勒索病毒攻击,提示用户注意安全风险,并且于同一天对所有版本发布了加固补丁。
通达OA V11版 <= 11.3 20200103
通达OA 2017版 <= 10.19 20190522
通达OA 2016版 <= 9.13 20170710
通达OA 2015版 <= 8.15 20160722
通达OA 2013增强版 <= 7.25 20141211
通达OA 2013版 <= 6.20 20141017
0x02 漏洞分析
- 根据官方补丁可以推断出大概的漏洞位置。
- 漏洞主要分为两个点,一个是文件上传,一个是文件包含。
文件上传
ispirit/im/upload.php
要上传首先需要绕过登陆验证,在本系统中auth.php是登陆验证的相关逻辑,但在upload.php未修复前,如果$P非空就不需要经过auth.php验证即可执行后续代码。利用此处逻辑漏洞可绕过登陆验证直接上传文件。
因上传后的文件不在根目录,所以无法直接利用,因此需要进行文件包含
文件包含
ispirit/interface/gateway.php
这个和上传相反,只要没有P参数即可无需验证。
未修复前,可通过精心构造json进入47行的includ_once进行文件包含。官方在补丁中增加了对”..”的过滤防止用户读取其他目录文件。
根据代码逻辑构造参数即可上传任意文件,但文件上传保存路径不在web目录中。
根据固定的目录结构可以推断出文件上传后的相对路径,组合文件上传+文件包含漏洞造成远程代码执行漏洞,且通达OA Web服务默认以系统服务方式运行(system权限),从而导致攻击者可以控制服务器权限。
0x03 修复建议
及时安装官方补丁
由于通达oa默认过滤了大部分执行命令的函数,所以想要执行命令请参考使用com组件绕过disable_function。