seay svn漏洞利用工具_通达OA远程命令执行漏洞分析

更多全球网络安全资讯尽在邑安全

www.eansec.com

一、漏洞简介

通达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所示:

73aead222cac7889654d486bbdb1bc6a.png

图1:代码审计

2.2 文件上传漏洞

根据网上公开资料,直接定位到源码路径 C:\phpStudy\WWW\tongdaoa\webroot\ispirit\im\upload.php,查看源码,如图2:

14df8f8078e04e31aa1bcea84438a2e1.png

图2:upload.php文件上传漏洞源码

该段源码黑框内部分,传入参数p,当参数p非空时进入会话页面,否则就进入认证页面。该处漏洞比较明显,只要参数p非空就可以绕过认证。继续阅读该段代码,绕过认证后就可以直接上传文件。如图3所示:

8d2c6492e9e6415f09b6017e40d2fc1b.png

图3:文件上传

跟进inc\utility_file.php 的upload方法,发现有个文件名校验函数is_uploadable。查看该函数的代码逻辑,如果文件名从最后一个位置倒数三个是“php”,那么返回false,也就是不可以上传以php结尾的文件。参考源码,这里也有多种黑名单绕过的方法,略过。源码如下图4:

41671ee25459b4d663eb40eaf9e665f1.png

图4:文件名黑名单

2.3 文件包含漏洞

参考资料,该文件包含漏洞存在于源码ispirit/interface/gateway.php。查看该处源码,如图5:

5068f29e2470ecbe0b92cf10d4736fc9.png

图5:文件包含漏洞代码

通过foreach 循环解析json,如果key和url相等,那么获得url,判断url是否为空,如果不为空且url中包含general/、ispirit/、module/,就调用include_once函数。试想,如果url构造成../../类型,执行完文件包含后,就可以访问到我们之前上传的文件了,一个../向上一级目录移动一下,两个../刚好退到tongdaoa的安装目录,后面紧接着之前上传的文件目录就可以。此处漏洞关键就在于构造url。

三、漏洞复现

3.1 复现环境

测试主机:Win10 x64 english

通达OA 11.3

抓包软件: Burpsuite v1.737

浏览器Firefox 41.0

下面我们分别对两个漏洞分别进行复现。

3.2 复现文件上传漏洞

通过通读upload.php源码,复现该漏洞需要满足以下条件:

(1)参数p 非空;

(2)DEST_UID非空且为数字;

(3)UPLOAD_MODE 为1 或者2 或者3;

(4)attachment的文件名不可以为php;

构造文件上传payload1 如图6:

ef004f88d7a81ab1ff1de0438f397dce.png

图6:文件上传payload1

用Burpsuite抓包,修改当前payload为payload1并重放,文件上传成功。如图7所示:

5bd58960c7f2a61169686ad49a940160.png

图7:文件上传复现

上传的文件保存在目录c:\phpstudy/www/tongdaoa/attach/im/2005/路径下,如图8所示:

02fb11ff571c34fc5e2529dce1efb137.png

图8:上传成功

验证文件上传成功。此时有一个问题,就是上传的文件不在webroot目录下,远程是访问不了的。这是需要配合另一个漏洞-文件包含漏洞来完成路径穿越,访问到上传的文件。

3.3 复现文件包含漏洞

按照之前代码分析,主要是构造url的payload。假设访问http://localhost/ispirit/interface/gateway.php,用burpsuite截包,发送到repeater,构造文件包含漏洞的payload2,payload2里注意两处,一处是增加Content-Type: application/x-www-form-urlencoded,另一处是json处url的构造。如图9所示,文件包含漏洞执行成功。

17faacc5dd705ebd8b2dd0086031b16d.png

图9:文件包含漏洞复现

3.4 获取目标shell

两个漏洞结合使用,可以远程获取shell。提前准备好php木马以及冰蝎等远程连shell工具。思路:利用文件上传漏洞上传php木马,然后再利用文件包含漏洞,使得web访问到该php文件,再用冰蝎连接。(注意:不可以直接为.php,根据代码分析结果,结尾为php的文件上传不上去)如图10所示:

bad3ba262b247d5a2de74ef8d15f95a8.png

图10:获取shell步骤1

在文件夹路径“C:\phpStudy\WWW\tongdaoa\attach\im\2005”下找到了该文件,上传成功。如图11:

11896fce4f3642e757e816173e557884.png

图11:上传成功

然后通过文件包含漏洞访问到刚刚上传的2125745527.test.php文件。如图12所示:

b6f77de2c8fbf99814d9fa9105846d9b.png

图12:访问已上传的文件

访问成功后,在\ispirit\interface\ 目录下会生成readme.php ,用冰蝎webshell连接,成功获取shell。如图13:

49d910f30715e8a9d967804a5d9476d0.png

图13:成功获取shell1

7308ebbec72b8760bcbf0dbf8f2a6788.png

图14:成功获取shell2

最后剩下的就是构造exploit了,网上已经给出很多该漏洞远程利用程序,大家可以用来测试。

四、补丁比较&加固建议

4.1补丁比较

笔者本着学习的目的,下载了通达OAv11.3的补丁,并做了补丁比较,比较的结果如下:

第一处补丁补上了文件上传漏洞,无论参数是否为空,都要进行认证。如图15所示:

f0db2d06375bf9447f6a9f9668bdc9e3.png

图15:第一处补丁

第二处补丁将“..”过滤掉了,如果url中出现该符号,认为是错误的url。这样就不可以执行路径穿越,也就访问不到非webroot目录下的文件了。如图16所示:

0d1700dea69af1c1eb133101a4afab04.png

图16:第二处补丁

4.2 加固建议

建议使用受影响版本的通达OA用户登录通达OA官网,获取最新补丁。请根据当前OA版本选择所对应的程序文件,运行前请先做好备份。安全更新下载地址:http://www.tongda2000.com/news/673.php

转自FreeBUF.COM

欢迎收藏并分享朋友圈,让五邑人网络更安全

c2fcbfa0cc279954a0a57d56f4f7cd80.png

欢迎扫描关注我们,及时了解最新安全动态、学习最潮流的安全姿势!

推荐文章

1

新永恒之蓝?微软SMBv3高危漏洞(CVE-2020-0796)分析复现

2

重大漏洞预警:ubuntu最新版本存在本地提权漏洞(已有EXP) 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值