通达OA系统11.2漏洞

以通达OA系统11.2版本为案例的Web渗透

  • 1. 渗透背景:
  • 2. 存在漏洞
  • 3. 漏洞复现
    • 3.1 前台任意用户登录漏洞
      • 3.1.1 漏洞原理:
      • 3.1.2 手工抓包复现:
      • 3.1.3 POC自动获取复现:
    • 3.2 前台未授权访问漏洞
    • 3.3 管理后台文件上传漏洞
    • 3.4 后台SQL注入漏洞
    • 3.5 文件包含getshell
  • 4. 总结

1. 渗透背景:

目标站点:VM虚拟机
O A 版本:通达OA系统11.2
目标系统:Windows server 2008 R2 SP1
威胁等级:高危
渗透工具:BurpSuite pro、SeayDzend、TongDaOA-Fake-User、PHPstorm、蚁剑、VMware

2. 存在漏洞

  1. 前台任意用户登录漏洞
  2. 前台未授权访问漏洞
  3. 管理后台文件上传漏洞
  4. 后台SQL注入漏洞
  5. 文件包含getshell

3. 漏洞复现

3.1 前台任意用户登录漏洞

3.1.1 漏洞原理:

根据网友提供的POC的代码分析,该漏洞涉及的文件包含以下四个文件:

/ispirit/login_code.php/ispirit/login_code_check.php/general/login_code_scan.php/general/index.php

通达OA源码使用zend5加密,利用解密工具SeayDzend解密上述四个文件后分析源码。

  1. /ispirit/login_code.php
    在这里插入图片描述
    该文件用来获取codeuid 参数,如果不存在,则会自动生成一个codeuid ,并且将其写入CODE_LOGIN_PC缓存中(通达OA使用了缓存系统Redis,同时也提供了对缓存的使用方法),但是在18行位置将这个参数显示出来,导致用户可以获取这个参数的值,从而可以绕过后面的验证。

  2. /general/login_code_scan.php
    在这里插入图片描述
    在这一文件中,用户可以控制输入的关键参数uid,在存在漏洞的通达OA版本中,后台数据库里uid对应的用户是admin管理员账户。并且将该数据存储在CODE_INFO_PC 缓存中,因为我们在第一个文件中获取的codeuid存储在CODE_LOGIN_PC中,所以这里在复现时需要指明source变量为pc,这里的username则为admin,而type变量需要指明为confirm

  3. /ispirit/login_code_check.php
    在这里插入图片描述
    这里使用之前存储的两个缓存中的内容,一个用来获取codeuid,一个用来获取通过Post 传入的uid等关键信息。
    在这里插入图片描述
    这里是最为关键的位置,代码获取用户可控的参数uid,并依次作为依据直接带入数据库进行查询。
    在这里插入图片描述
    在这里插入图片描述
    随后将查询的信息直接写入session中,通过这一步, session中包含的就是管理员的身份信息。

3.1.2 手工抓包复现:

  1. 抓首页的包进行更改,访问/ispirit/login_code.php,通过返回包获取codeuid
    在这里插入图片描述

  2. 使用POST方式访问/general/login_code_scan.php,提交相关参数,其中codeuid改为上一步中返回的值。

    payload:

    uid=1&codeuid={your-codeuid}&type=confirm&source=pc&username=admin
    
    • 1

    在这里插入图片描述

  3. 使用GET方式访问/ispirit/login_code_check.php,传入关键参数codeuid,让后台进行代入查询,并返回携带管理员身份信息的凭证。
    在这里插入图片描述

  4. 经过这步后客户端已经拥有了管理员的身份信息,直接访问OA主页,放行如下数据包以及后续的数据包(后续数据包内容大概为管理页面的其他内容),成功以管理员身份登录OA系统。
    在这里插入图片描述
    在这里插入图片描述

3.1.3 POC自动获取复现:

  1. 在python环境下运行POC,返回cookie
    (POC来自Github:https://github.com/NS-Sp4ce/TongDaOA-Fake-User)
    在这里插入图片描述

  2. 替换浏览器存储的cookie,访问http://your-ip/general/成功以管理员身份登录OA系统。
     
    未更改cookie前:
    在这里插入图片描述
    更改cookie后:
    在这里插入图片描述

3.2 前台未授权访问漏洞

备注:需要后台有账户在线时使用
 

  1. 访问http://your-ip/mobile/auth_mobi.php?isAvatar=1&uid=1&P_VER=0 ,此时出现RELOGIN,说明目前没有人在线,需要等待有人登录的时候再尝试。
    在这里插入图片描述
  2. 在虚拟机通达后台登录管理员账号,再次尝试,此时出现空白页面,说明已经获得权限。
    在这里插入图片描述
  3. 再次访问http://your-ip/general/,成功进入系统。
    在这里插入图片描述

3.3 管理后台文件上传漏洞

  1. 登录后台后,在“系统管理 → 系统参数设置 → OA服务设置”,找到Webroot目录
    在这里插入图片描述

  2. 点击系统管理 → 附件管理 → 添加存储目录,在此重新设置上传附件存储目录(原先默认的路径在MYOA -> attach,不在网站目录MYOA -> webroot下)

    注:
    此处的更改上传文件路径选项在通达OA11.2的版本下可以,11.4版本中不能如此设置,因为这个路径被识别为敏感路径。
    在这里插入图片描述

  3. 选择组织 → 管理员 → 附件上传,经测试,此处上传“php、php5、phtml”等后缀会被过滤,此时上传TXT 文件是成功的。抓包查看返回值。
    在这里插入图片描述
    在这里插入图片描述

  4. 根据返回的结果,拼接文件路径, http://your-ip/im/2106/704995893.shell.txt
    在虚拟机中查看该目录,上传成功
    在这里插入图片描述

  5. 利用windows系统会自动去掉符号“点”,上传shell.php. 文件进行绕过
    在这里插入图片描述

  6. 根据返回的结果,拼接文件路径:http://your-ip/im/2106/shell.php,蚁剑连接,成功getshell
    在这里插入图片描述

3.4 后台SQL注入漏洞

备注:复现此漏洞需先通过上述操作登录OA管理后台,此时为admin权限但无数据库操作权限,此时存在SQL注入漏洞。

  1. 此漏洞存在于/general/appbuilder/web/calendar/calendarlist/getcallist 目录,该点存在盲注。(sqlmap未复现成功)
    问题关键参数: starttime=12&endtime=15&view=month&condition=1
     
    payload:

    starttime=12&endtime=15&view=month&condition=1
    starttime=AND (SELECT[RANDNUM]FROM(SELECT(SLEEP([SLEEPTIME]-(IF([INFERENCE],0,[SLEEPTIME])))))[RANDSTR])---&endtime=1598918400&view=month&condition=1
    
    • 1
    • 2
  2. Request包

    POST /general/appbuilder/web/calendar/calendarlist/getcallist HTTP/1.1
    Host: your-ip
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) 			Gecko/20100101 Firefox/89.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    Accept-Encoding: gzip, deflate
    Connection: close
    Cookie: KEY_RANDOMDATA=1408; PHPSESSID=94jsta5nnj7ops79s11ji3v3s6
    Upgrade-Insecure-Requests: 1
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 197
    

starttime=12&endtime=15&view=month&condition=1
starttime=AND (SELECT[RANDNUM]FROM(SELECT(SLEEP([SLEEPTIME]-(IF([INFERENCE],0,[SLEEPTIME])))))[RANDSTR])—&endtime=1598918400&view=month&condition=1

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

爆出部分信息:
在这里插入图片描述
在这里插入图片描述

3.5 文件包含getshell

  1. Goby扫描目标站点,爆出通达文件包含getshell,进行验证,goby自动完成Webshell上传。
    在这里插入图片描述
  2. 蚁剑连接shell成功验证。
    在这里插入图片描述
    在这里插入图片描述

4. 总结

针对本次实验复现的通达OA漏洞,解决方法为:尽快更新OA版本,及时打系统补丁。不过除了11.2版本外,此漏洞可能存在于其他版本中,可能也许只是漏洞代码的存放路径改变了,大神可自行分析(小弟我太白,现在真不会审计🤡)。后续版本也有许多其他问题,可能存在多版本也可能只有当前版本,等我有时间的时候再做做看吧(主要现在有些懒😢)

本次实验复现了通达OA其中一个版本的漏洞,目的仅是用于学习渗透测试的思路以及部分方法。实验环境完全由自己搭建在虚拟机环境下,自己搭建自己复现,没有任何现实中的操作!

(敲黑板!!!)
此篇仅供技术交流学习,请勿用于任何现实网络环境的破坏!做一个遵纪守法的好公民!

文章知识点与官方知识档案匹配,可进一步学习相关知识
网络技能树首页概览19872 人正在系统学习中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/357948.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小白如何从零开始设计并开发一个微信小程序?

背景:微信小程序的出现,让更多的中小型企业初期不再以APP为首选,小程序的天然优势让他备受关注,也因此诞生了专门的小程序开发岗位,让前端有机会继续蚕食其他岗位的份额。 但微信小程序也会很多缺点,最大的就是监管太霸道,各种限制行业进入和权限,未开发的行业还是不能…

mvc2 mvc_每个人都知道MVC…

mvc2 mvc从一个最近的博客中,您可能会发现我最近一直在进行一些采访,就像他们对Web应用程序开发人员所说的那样,我问的一个问题是“您能解释一下MVC模式是什么吗?”,值得赞扬的是,每个候选人知道答案。 对于…

移动端 长按事件_Flutter事件监听

一. 事件监听 在大前端的开发中,必然存在各种各样和用户交互的情况:比如手指点击、手指滑动、双击、长按等等。在Flutter中,手势有两个不同的层次:第一层:原始指针事件(Pointer Events):描述了屏幕上由触摸…

在CSDN的博文中如何添加博主名片

前言:以前看到很多大佬博文中都有自己的名片,我以为是他们自己打字打上去的,自己打上去样式却不理想。今天终于发现了新大陆。分享给你们。 效果图: 设置方法如图:找到创作权益——博主名片——展示博文详情页&#xf…

vscode中文设置不生效_VSCode详细安装教程

1.下载https://code.visualstudio.com/download 是Microsoft(微软的产品)User Installer版:会安装在当前计算机帐户目录,意味着如果使用另一个帐号登陆计算机将无法使用别人安装的vscode。System Installer版:安装在非用户目录,例…

毛绒材质渲染_学室内设计必进,建模渲染那都不是事儿

近年来,室内设计从业人员需求量和薪酬持续增长带来的是室内设计行业的飞速发展,而设计能力也成为“创新与创造”的不可或缺。设计能力是多方面能力的综合体现而室内效果图作为设计成果的最主要表现手段,是最基础也是最重要的技能之一。那么持…

2020年末总结,脚踏实地,一步一个脚印——致敬自己一年的心酸历程

摘要:恰逢官方征文,谨以此篇记录自己一年的心酸历程与前端知识的感悟。 目录 在时代工场的主要工作 我为什么从时代工场离职?

如何使用Java 8函数式编程生成字母序列

我偶然发现了用户“ mip”一个有趣的堆栈溢出问题 。 问题是: 我正在寻找一种生成字母序列的方法: A, B, C, ..., Z, AA, AB, AC, ..., ZZ.可以很快将其识别为Excel电子表格的标题,正是这样: 到目前为止,没有答案使…

maven 打包指定依赖包_[Maven]-Maven基础-01-基础概念

Maven基础1.基础概念Maven基础概念什么是Maven什么是理想的项目构建?高度自动化,跨平台,可重用的组件,标准化的什么是依赖?为什么要进行依赖管理?自动下载,统一依赖管理有哪些项目信息&#xff…

关于本人在多个技术平台发布文章的声明

摘要:由于博主有经常记录博客的习惯,很多其他平台的运营或者编辑多多少少会找到我,让我在他们的平台更新文章,写这篇文章主要为了陈述事实与避免纠纷。 本博客会长期维护更新,感谢大家的理解与支持。 孙叫兽目前只在CSDN、开源中国、掘金、infoq、腾讯云+技术社区上更新博…

cmseasy漏洞复现

介绍 提供可视化编辑企业网站管理系统系统、网站模板、以及相关文档资料下载,网站系统完美运 行PHP7环境中。 官方网站: https://www.cmseasy.cn/ cmseasy_7.3.8 任意文件操作漏洞复现 cmseasy_7.6.3.2逻辑漏洞复现 "无需代码,自由拖拽布局,适应…

教你如何看待程序员这个职业的前前后后

现在大家的学历基本提升上来啦,基本搞编程的都是本科或者大专起步,这里仅那本科举例。 好多大学生跟我说是计算机专业,软件工程专业等,啥都学一点,这样真的好? 对于大学生,如果是计算机相关专业…

请领导批阅文件怎么说_刚到公司,应该怎么喊领导,别直接说名字,高情商这样称呼...

刚到公司,应该怎么喊领导,别直接说名字,高情商这样称呼我们都有经历过刚刚从大学毕业出来后,寻求工作的场景。一般来说,我们都是会选择和自己大学所学专业挂钩的职业,在这样的情况下, 我们的选择…

分屏显示_2021元旦高性价比显示器推荐——便携式显示器选购指南(分屏办公、小尺寸办公必备)...

想要告别小显示器选择困难症,挑选到自己心仪的小显示器,大家看这篇文章就够了!显示器是PC的重要组成部分,在应用程序级别具有“场景”属性。显示器的要求因办公,娱乐和学习等不同应用而异。无论应用场景如何&#xff0…

一键反编译Android包教程

功能介绍 某些时候我们想修改apk包内容,比如汉化某个游戏,这时候就需要修改游戏apk的包内容,并重新签名成安卓手机识别的apk文件,下面详细介绍,文章末尾有一键修改工具。(注意:此工具尚未整合修…

发现一个可视化大屏操作神器FBI,你值得一试

FineBI 是帆软软件有限公司推出的一款商业智能(Business Intelligence)产品。 FineBI 自助分析以业务需求为方向,通过便携的数据处理和管控,提供自由的探索分析。 FineBI 定位于自助大数据分析的 BI 工具,能够帮助企业的业务人员和数据分析师,开展以问题导向的探索式…

uniapp去掉右侧滚动条的解决办法?

用 uniapp 开发小程序,内容多的情况下,在微信开发者工具和真机调试下,右侧出现滚动条,有没有办法隐藏滚动条? 参考文档:https://uniapp.dcloud.net.cn/collocation/pages?id=app-plus 解决办法一: 参考文档:https://uniapp.dcloud.net.cn/collocation/pages?id=app-plus…

内网渗透工具CobaltStrike使用教程详解

文章目录 前言一、CobaltStrike本次实验环境 二、CobaltStrike详细使用1.启动CobaltStrike2.客户端连接团队服务端3.配置监听器4.生成木马5.权限提升,命令执行以及内网横线穿透等。6.插件加载7.命令执行等操作8.目标信息总结表(自动记忆保存&#xff09…

日志长度_Kafka 日志存储详解

点击上方“Java知音”,选择“置顶公众号”技术文章第一时间送达!作者:爱宝贝丶my.oschina.net/zhangxufeng/blog/3114166本文主要介绍kafka中日志的存储原理,主要内容包括kafka日志存储格式、日志文件的管理方式、日志索引文件的格…

Apache Spark:更改架构之前必须解决的5个陷阱

迁移到Apache Spark之前需要了解的5件事 似乎每个人都只是在谈论最热门的新技术,而忽略采用它的真正含义。 但这是自然的,对吧? 新功能和承诺胜过其他一切,而艰巨的挑战和决​​定被抛在一边。 这次不行。 软件架构很难&#xf…