漏洞实例_通达OA远程命令执行漏洞分析_零基础黑客入门教程

漏洞实例_通达OA远程命令执行漏洞分析_零基础黑客入门教程

一、漏洞简介

通达OA( 网络智能办公系统)是由北京通达信科科技有限公司自主研发的协同办公自动化软件,是与中国企业管理实践相结合形成的综合管理办公平台。3月13日,通达OA在官方论坛发布通告称,近日接到用户反馈遭到勒索病毒攻击,攻击者通过构造恶意请求,上传等恶意文件,并对入侵的服务器进行文件加密,勒索高额匿名货币赎金。笔者长期从事二进制漏洞的研究,写此文旨在学习web漏洞的研究方法并以此漏洞为实践,强化对web漏洞利用技术的认识,记录之。

二、漏洞分析

资料显示,该漏洞影响范围较广,影响的版本有:V11版、2017版、2016版、2015版、2013增强版、2013版。

本文为了复现方便,下载使用了通达OA V11.3版本。下载链接:

提取码:ousi

2.1 初步的代码审计

安装好通达OA v11.3版本,安装后在目录下找到源代码,查看源码,发现都是乱码,都是经过zend加密的,需要解密。解密工具可使用,因为源码是php写的,最简单的是用seay源码审计工具粗略筛选一下,查找潜在的漏洞,代码审计时间较长,审计结果取了开头一小段,说明思路而已。如图1所示:

通达oa漏洞_漏洞实例_漏洞专业术语

图1:代码审计

2.2 文件上传漏洞

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

漏洞专业术语_漏洞实例_通达oa漏洞

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

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

漏洞专业术语_漏洞实例_通达oa漏洞

图3:文件上传

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

漏洞专业术语_通达oa漏洞_漏洞实例

图4:文件名黑名单

2.3 文件包含漏洞

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

通达oa漏洞_漏洞专业术语_漏洞实例

图5:文件包含漏洞代码

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

三、漏洞复现3.1 复现环境

测试主机:Win10 x64

通达OA 11.3

抓包软件: v1.737

浏览器 41.0

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

3.2 复现文件上传漏洞

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

(1)参数p 非空;

(2)非空且为数字;

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

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

构造文件上传 如图6:

通达oa漏洞_漏洞实例_漏洞专业术语

图6:文件上传

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

漏洞专业术语_通达oa漏洞_漏洞实例

图7:文件上传复现

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

漏洞实例_漏洞专业术语_通达oa漏洞

图8:上传成功

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

3.3 复现文件包含漏洞

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

漏洞专业术语_通达oa漏洞_漏洞实例

图9:文件包含漏洞复现

3.4 获取目标shell

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

漏洞实例_漏洞专业术语_通达oa漏洞

图10:获取shell步骤1

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

漏洞专业术语_漏洞实例_通达oa漏洞

图11:上传成功

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

漏洞专业术语_通达oa漏洞_漏洞实例

图12:访问已上传的文件

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

通达oa漏洞_漏洞实例_漏洞专业术语

图13:成功获取

通达oa漏洞_漏洞专业术语_漏洞实例

图14:成功获取

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

四、补丁比较&加固建议4.1补丁比较

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

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

通达oa漏洞_漏洞实例_漏洞专业术语

图15:第一处补丁

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

图16:第二处补丁

4.2 加固建议

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

本文仅是记录一次对通达OA漏洞的分析利用过程,不当的地方请大牛们指点纠正。从逆向思维的角度出发,如何自主发现该类型的漏洞并能快速形成利用思路,构建?这是笔者想在后续深入学习web漏洞时想着重提高的。有对代码审计有经验的大牛或者对代码审计感兴趣想一起学习的,可站内联系,一起进步!

五、参考

~

网络安全学习,我们一起交流

~

  • 20
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值