一、漏洞简介
通达OA(Office Anywhere网络智能办公系统)是由北京通达信科科技有限公司自主研发的协同办公自动化软件,是与中国企业管理实践相结合形成的综合管理办公平台。3月13日,通达OA在官方论坛发布通告称,近日接到用户反馈遭到勒索病毒攻击,攻击者通过构造恶意请求,上传webshell等恶意文件,并对入侵的服务器进行文件加密,勒索高额匿名货币赎金。笔者长期从事二进制漏洞的研究,写此文旨在学习web漏洞的研究方法并以此漏洞为实践,强化对web漏洞利用技术的认识,记录之。
二、漏洞分析
资料显示,该漏洞影响范围较广,影响的版本有:V11版、2017版、2016版、2015版、2013增强版、2013版。
本文为了复现方便,下载使用了通达OA V11.3版本。下载链接:
https://pan.baidu.com/s/1QFAoLxj9pD1bnnq3f4I8lg
提取码:ousi
2.1 初步的代码审计
安装好通达OA v11.3版本,安装后在webroot目录下找到源代码,查看源码,发现都是乱码,都是经过zend加密的,需要解密。解密工具可使用SeayDzend,因为源码是php写的,最简单的是用seay源码审计工具粗略筛选一下,查找潜在的漏洞,代码审计时间较长,审计结果取了开头一小段,说明思路而已。如图1所示:
图1:代码审计
2.2 文件上传漏洞
根据网上公开资料,直接定位到源码路径 C:\phpStudy\WWW\tongdaoa\webroot\ispirit\im\upload.php,查看源码,如图2:
图2:upload.php文件上传漏洞源码
该段源码黑框内部分,传入参数p,当参数p非空时进入会话页面,否则就进入认证页面。该处漏洞比较明显,只要参数p非空就可以绕过认证。继续阅读该段代码,绕过认证后就可以直接上传文件。如图3所示: