mysql漏洞如何打补丁_通达OA-感染勒索病毒漏洞分析

No.1声明

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测以及文章作者不为此承担任何责任。雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。

No.2引言

开篇的首先感谢l1nk3r大佬的帮助。前天看到通达OA官方发布的一则更新公告http://club.tongda2000.com/forum.php?mod=viewthread&tid=128377&extra=page%3D1

f2f73f3e0eea7b51c7637308b18c9058.png

No.3 第一个漏洞点

下了2017版本和最新版本的代码(这里遇到了一个坑点,2017版本的相当于只有漏洞的一半,为啥是一半后面会提到)下载地址如下:http://www.tongda2000.com/download/2017.php打开以后发现php代码都是混淆过后的(sublime打开如下图所示,用其他编辑器打开是乱码)

ab9ffd999f4491d6f4091cda5ba7973a.png

通达OA的代码加密方式用的是zend,网上找在线解密即可也可以下载批量解密工具进行解密然后我下载了对应版本的补丁包。通过查看补丁包发现主要是针对某一个文件进行补丁然后针对未打补丁的和打补丁的进行对比查看,发现主要不同点在include_once('auth.php')这里

bfadfa8fb58b5807447340d10ad8c6dc.png

然后查看了一下auth.php初步推断是未授权的文件上传漏洞。直接访问问题url提示还未登陆,然后查看源代码然后读代码构造payload,发现他有一个$_POST[‘P']参数如果P参数不为空且存在,则会创建一个sessionid然后我构造一个P参数,发现走到了-ERR接收方IP无效的提示

1a5d5013c41c6d3da24a643ba5079cc8.png

很显然我需要走通这个步骤,也就是我的$DEST_UID需要赋值,来源是post传参。

7a0026e873fedcd426c5b48aa49c50b5.png

既然是文件上传我肯定是需要上传文件的,所以构造上传,且不为空

b4216d9b1ceff96873b23fa47be0c5a0.png

构造好以后我以为万事俱备只缺getshell了,然后发现竟然回显ok的标志

00856f290a94b24cd9f477443e8ac10d.png

说好的文件上传呢,我又回去读源代码(其实在这里也可以成功上传文件,只不过回显不了文件的名字而已)

发现UPLOAD_MODE虽未赋值,但是会加入判断。由于php代码都被加密了,解密太复杂,就没有深究他的其他配置情况。尝试构造,发现,可以成功上传,然后我去找文件,准备getshell发现2个坑点:1.不能上传php;2.上传的文件不在web目录下(当时我找了上传的文件找到怀疑人生,卡了挺久,还好l1nk3r大佬点出来在非web目录下)。所以又出来了一个新点,就是这个漏洞应该是文件上传+文件包含。通过对比补丁暂未发现新漏洞中存在包含问题。又去看了其他版本通达,发现存在包含,可以文件上传+文件包含getshell文件包含形式和文件上传类似。

No.4 第二个漏洞点

咱们通过第一个漏洞上传文件以后,由于不在web目录下,利用文件包含进行包含。所以发现

/ispirit/interface/gateway.php目录下。

直接使用了include_once进行包含(问题点)

76e2cf94ef283525c35e9783c0f316d9.png

所示我们需要让代码走到include_once这个位置。那么开始看整段代码看如何走到

223997e098a6f40c07954d0a4256bfd6.png

首先判断了一个json值。然后再判断url。所以我们需要构造一个json,还有一个url即可让代码走到include_once $url这里

构造完以后成功执行。

8a7f94708d097d1f7ad4902d48bce1ec.png

No.5 防御方案

1.关注通达OA官网,根据自身版本及时打补丁;2.关注通达OA官网的历史漏洞及补丁,建议及时打历史补丁;3.部署安恒玄武盾、waf等安全设备进行安全防护。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值