Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >通达OA远程命令执行漏洞分析

通达OA远程命令执行漏洞分析

作者头像
FB客服
发布于 2023-04-26 14:13:35
发布于 2023-04-26 14:13:35
3.8K0
举报
文章被收录于专栏:FreeBufFreeBuf

一、漏洞简介

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

图3:文件上传

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

图4:文件名黑名单

2.3 文件包含漏洞

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

图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:

图6:文件上传payload1

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

图7:文件上传复现

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

图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所示,文件包含漏洞执行成功。

图9:文件包含漏洞复现

3.4 获取目标shell

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

   图10:获取shell步骤1

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

图11:上传成功

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

图12:访问已上传的文件

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

图13:成功获取shell1

图14:成功获取shell2

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

四、补丁比较&加固建议

4.1补丁比较

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

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

图15:第一处补丁

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

图16:第二处补丁

4.2 加固建议

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

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

五、参考

https://www.cnblogs.com/yuyan-sec/p/12549237.html

*本文作者:elvadisas,转载请注明来自FreeBuf.COM

精彩推荐

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
漏洞复现 | 通达OA命令执行漏洞复现
通达OA是北京通达信科科技有限公司出品的 "Office Anywhere 通达网络智能办公系统"。
谢公子
2022/01/19
7.1K1
漏洞复现 | 通达OA命令执行漏洞复现
通达OA任意文件上传+文件包含GetShell
通达OA采用基于WEB的企业计算,主HTTP服务器采用了世界上最先进的Apache服务器,性能稳定可靠。数据存取集中控制,避免了数据泄漏的可能。提供数据备份工具,保护系统数据安全。多级的权限控制,完善的密码验证与登录验证机制更加强了系统安全性。
Timeline Sec
2020/04/08
2.3K0
通达OA任意文件上传+文件包含GetShell
通达OAの漏洞合集
两三个月之前实习的时候通达OA的漏洞学习笔记,赶紧发了清一下库存,免得文件夹吃灰。
h0cksr
2023/05/18
5.8K0
通达OA文件上传文件包含漏洞解析
通达OA是由北京通达信科科技有限公司开发的一款办公系统,近日通达官方在其官网发布了安全提醒与更新程序,并披露有用户遭到攻击。 攻击者可在未授权的情况下可上传图片木马文件,之后通过精心构造的请求进行文件包含,实现远程命令执行,且攻击者无须登陆认证即可完成攻击。
逍遥子大表哥
2021/12/18
2.2K0
通达OA文件上传文件包含漏洞解析
通达OA任意文件上传漏洞详细分析
影响范围(但是只有V11版和2017版有包含文件的php,其余版本能上传文件.):
谢公子
2022/01/20
3K0
通达OA任意文件上传漏洞详细分析
通达OA代码审计篇 - 11.7 有条件的任意命令执行
这是一个由有条件的任意用户登录+低权限文件上传+低权限目录穿越+低权限文件包含组成。可能是盯着国内OA的人太多了,这个漏洞在2020年9月28号的11.8版本中被更新修复,比较可惜的是,一次更新修复了全部的漏洞逻辑,不禁令人惊叹。
LoRexxar
2023/02/21
8790
通达OA代码审计篇 - 11.7 有条件的任意命令执行
通达OA绕过身份验证+任意文件上传RCE
通达OA采用基于WEB的企业计算,主HTTP服务器采用了世界上最先进的Apache服务器,性能稳定可靠。数据存取集中控制,避免了数据泄漏的可能。提供数据备份工具,保护系统数据安全。多级的权限控制,完善的密码验证与登录验证机制更加强了系统安全性。
Timeline Sec
2020/08/31
2K0
通达OA绕过身份验证+任意文件上传RCE
通达OA代码审计篇二 - 11.8 后台Getshell
前篇中提到的漏洞在11.8版本中被完全修复后,我痛定思痛,从头开始找一个新的漏洞,于是就有了今天这个漏洞的诞生,但没想到的是,在保留到2021年初时,1月11号更新的11.9版本中再次被定向修复。
LoRexxar
2023/02/21
2.1K0
通达OA代码审计篇二 - 11.8 后台Getshell
通达OA文件包含全版本 getshell | Nmap 脚本
今天就做了全版本匹配,但是我发现似乎只有 v11 和 2017 版本存在文件包含漏洞,文件上传是都存在的,但不是web目录(webroot) 所以今天更新了一下 2017 版本的利用,顺便改了一下result的值和拼错了的 nothing
意大利的猫
2020/08/20
1.5K0
Web漏洞挖掘班作业 | 轻松把玩越权访问漏洞
了解越权访问的概念,首先要了解授权和验证的概念:授权是指网站赋予特定人对网站特定资源的读写权限。而验证是网站用于检查操作者是否真的可以对特定资源进行读写
Ms08067安全实验室
2022/04/06
1.9K0
Web漏洞挖掘班作业 | 轻松把玩越权访问漏洞
靶场实战(20):OSCP备考之内网靶场红日7
目标单位的 VPN/Wi-Fi 存在弱口令漏洞,可以爆破出密码,获得目标单位内网的访问权限(备注:这句是我编的,目的是让靶场更真实)。
OneMoreThink
2024/10/15
3000
靶场实战(20):OSCP备考之内网靶场红日7
通达OA getshell | Nmap 脚本
local stdnse = require "stdnse" local shortport = require "shortport" local http = require "http" local string = require "string" local base64 = require "base64" description = "TDOA upload & lfi" author = "test94" license = "Same as Nmap--See https://nmap
意大利的猫
2020/08/20
1.6K0
漏洞告之:通达OA 远程代码执行漏洞
北京通达信科科技有限公司是中国兵器工业信息中心的全资子公司,简称通达信科。是一支以管理软件研发、实施、服务与咨询为主营业务的高科技企业,隶属于世界500强企业中国兵器工业集团公司。作为国内协同管理软件行业内唯一的央企单位,通达信科将自身定位于中国协同OA软件的领跑者, 中国优秀的云应用方案提供商。通达信科建立了一支以年轻博士、硕士、高级工程师为核心的专业技术团队, 具备雄厚的研发实力和强大的项目实施及售后服务能力,是一支素质卓越、服务热情、勤勉奋进的优秀科研团队。一直以来,通达信科坚持秉承央企的信誉、外企的管理、民企的效率,通达信科人具备"能打大仗,敢打硬仗"的项目执行力, 是国内协同管理软件领域内鲜有的专家级领军团队。
Khan安全团队
2020/03/20
1.1K0
漏洞挖掘之通达OA2017任意文件上传
通达OA系统代表了协同OA的先进理念,16年研发铸就成熟OA产品,协同OA软件行业唯一央企团队研发,多次摘取国内OA软件金奖,拥有2万多家正式用户,8万多家免费版用户。
乌鸦安全
2021/08/05
3K2
漏洞挖掘之通达OA2017任意文件上传
Src挖掘技巧分享 | 谈谈业务逻辑漏洞
业务逻辑漏洞,是由于程序逻辑不严谨或逻辑太过复杂,导致一些逻辑分支不能正常处理或处理错误,这样的漏洞统称为业务逻辑漏洞。
亿人安全
2022/06/30
3K0
Src挖掘技巧分享 | 谈谈业务逻辑漏洞
PHP代码审计-某呼OA
通过抓包分析定位到了源码,这里调用了uploadAction.php下的upfileAjax() 方法。
亿人安全
2023/11/09
4590
PHP代码审计-某呼OA
聊聊安全测试中如何快速搞定Webshell
WEB安全漏洞中,与文件操作相关的漏洞类型就不少,在大部分的渗透测试过程中,上传文件(大、小马)是必不可少的一个流程,然而各种各样的防火墙拦截了文件上传,遂整理文件操作相关漏洞的各种姿势,如有不妥之处,还望各位斧正,小东感激不尽。
FB客服
2019/05/14
1.1K0
浅谈如何在渗透测试中快速搞定webshell
最近在代码审计某项目的时候发现了一个文件上传漏洞,但是在生产环境测试的过程中,各种各样的“狗”和“盾”都给拦截了,徒有漏洞,没法儿利用,所以整理整理,杀狗破盾,冲冲冲!
小东同学
2022/07/29
1.2K0
浅谈如何在渗透测试中快速搞定webshell
全网首发 | 通达OA多枚0day漏洞分享
之前曝光过通达OA 0day我这里就不曝了,截止到发帖时,下面的漏洞都是未正式公开的。 影响范围: 我测试的是通达OA11.5版本,也就是2020年04月17日发布的,其他版未测,但我想也会有吧。
用户1467662
2020/08/28
2K0
全网首发 | 通达OA多枚0day漏洞分享
文件上传漏洞知识总结
直接使用别人的靶场总感觉不太好,那么就干脆自己写一个自己的文件上传靶场吧。正好博客之前也没有单独总结过文件上传的知识点,那么就顺便水一篇文章,岂不是一举两得。当然关于文件上传 upload-labs 总结的比较全面了,非强迫症患者建议直接去刷 upload-labs ,本文很多核心代码也都是直接用了 upload-labs 的轮子的…
黑战士
2022/11/21
1.4K1
相关推荐
漏洞复现 | 通达OA命令执行漏洞复现
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档