通达oa远程命令执行 – 作者:mazihan

突破背景

通达OA(Office Anywhere网络智能办公系统)是由北京通达信科科技有限公司自主研发的协同办公自动化软件,是与中国企业管理实践相结合形成的综合管理办公平台。3月13日,通达OA在官方论坛发布公告称号,近日接收用户反馈阻止勒索病毒攻击,攻击者通过构造恶意请求,上传webshel​​ l等恶意文件,入侵入侵的服务器进行文件加密,勒索高额匿名货币赎回金。

影响范围

该突破影响范围较广,影响的版本有:V11版,2017版,2016版,2015版,2013增强版,2013版。

复现

下载使用了通达OA V11.3版本。
链接:https ://pan.baidu.com/s/1HP5pDsAK2QLOWpnB1JX-Yg提取码:vab0 

是个exe,安装解压完是php代码。

用Sublime打开,都是16二进制加密

用notepad打开显示,zend加密

php在线解密网站解密出源代码。

文件上传

ispirit / im / upload.php

image.png

要上传首先需要绕过登陆验证,在本系统中auth.php是登陆验证的相关逻辑,但在upload.php的的未修复前,如果$ P非空就不需要通过auth.php验证,即可执行后续代码。利用此处逻辑伸缩可绕过过登陆验证直接上传文件。

image.png

跟进上传方法,发现有个文件名校验函数is_uploadable。
image.png
跟进is_uploadable的方法。
image.png

查看该函数的代码逻辑,如果文件名从最后一个位置倒数三个是“ php”,那么返回false,也就是不可以上传以php结尾的文件。生成
请求包:

image.png

经过下载原始码测试,上传后的文件在MYOA / attach / im / 2006 /目录下

image.png

因上传后的文件不在根目录,所以无法直接利用,因此需要进行文件包含。

文件包含

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

image.png

通过foreach循环解析json,如果键和URL重合,那么获得的URL,判断URL是否为空,如果不为空且url中包含general /,ispirit /,module /,就调用include_once函数。

所以payload可以构建为:

image.png

返回结果:

image.png

命令执行至此结束。

shell获取

将文件上传的过程改写成如下有效负载:

image.png

通过文件包含调用该文件,生成a.php

image.png

菜刀链接一下
image.png

加固建议

第一处补丁补上了文件上传漏洞,无论参数是否为空,都要进行认证。
第二处补丁将“ ..”过滤掉了,如果url中出现该符号,结束掉程序。
官网最新补丁:http://www.tongda2000.com/news/673.php

poc

python:

image.pngimage.pngimage.png

image.png

关注我们

Tide安全团队正式成立于2019年1月,是新潮信息各自以互联网攻防技术研究为目标的安全团队,目前聚集了十多位专业的安全攻防技术研究人员,专注于网络攻防,Web安全,移动终端,安全开发,IoT /物联网/工控安全等方向。

想了解更多Tide安全团队,请关注团队官网: http: //www.TideSec.com或长按二维码关注公众号:

ewm.png

来源:freebuf.com 2020-06-27 11:42:34 by: mazihan

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论