漏洞概念_通达OA前台任意用户登录漏洞_详细漏洞知识点

漏洞概念_通达OA前台任意用户登录漏洞_详细漏洞知识点

本文由东塔网络安全学院学员---张同学 投稿。

1 漏洞描述

通达OA是一套使用比较广泛的办公系统。该漏洞因为使用uid作为身份标识,攻击者通过构造恶意请求,可以直接绕过登录验证逻辑,伪装为系统管理员身份登录OA系统。通达OA官方于2020年4月17日发布安全更新。

2 影响版本

通达OA < 11.5.版本

通达OA 2017版本

3 漏洞原理

本次复现为2017版本,则重点分析该版本,但原理都是基本相同的,只不过文件路径不同而已。根据POC的代码分析如下,该漏洞涉及的文件包含以下四个:

//.php

//.php

//.php

//index.php

首先说明,通达OA源码使用zend5加密,这里推荐一款解密工具:,工具使用也很简单,创建两个目录,一个存放加密文件,另一个用来输出解密结果。

通达oa漏洞_漏洞解决方案_漏洞概念

//.php:

漏洞解决方案_漏洞概念_通达oa漏洞

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

//.php:

漏洞解决方案_通达oa漏洞_漏洞概念

在这一文件中,用户可以控制输入的关键参数uid,在存在漏洞的通达OA版本中,后台数据库里uid对应的用户是admin管理员账户。并且将该数据存储在缓存中,因为我们在第一个文件中获取的存储在中,所以这里在复现时需要指明变量为pc,这里的则为admin,而type变量需要指明为,原因在后面会进行解释。

//.php:

漏洞概念_通达oa漏洞_漏洞解决方案

这里使用之前存储的两个缓存中的内容,一个用来获取,一个用来获取通过post传入的uid等关键信息,这里红框就是为什么前一步需要将type设置为。

漏洞概念_漏洞解决方案_通达oa漏洞

这里是最为关键的位置,代码获取用户可控的参数uid,并依次作为依据直接带入数据库进行查询

通达oa漏洞_漏洞概念_漏洞解决方案

通达oa漏洞_漏洞解决方案_漏洞概念

随后将查询的信息直接写入中,通过这一步,中包含的就是管理员的身份信息。

以上就是该漏洞的原理,V11版本原理类似,可用对照POC中的步骤进行分析复现。

4 漏洞复现环境搭建:

下载源码直接安装即可,注意在安装完毕检测端口是否占用;

通达oa漏洞_漏洞概念_漏洞解决方案

这里使用80端口,成功访问,环境搭建完成:

漏洞解决方案_漏洞概念_通达oa漏洞

手工抓包复现:

按照poc中的步骤,首先抓首页的包进行更改,访问//.php

通过返回包获取

而后使用POST方式访问//.php

提交相关参数,其中需要改为上一步中返回的值。

:uid=1&={-A63E-F010-653B-}&type=&=pc&=admin

漏洞解决方案_通达oa漏洞_漏洞概念

第三步使用GET方式访问//.php,传入关键参数,让后台进行代入查询,并返回携带管理员身份信息的凭证。

经过这步后客户端已经拥有了管理员的身份信息,直接访问OA主页,放行该数据包,成功以管理员身份登录OA系统。

通达oa漏洞_漏洞解决方案_漏洞概念

通达oa漏洞_漏洞解决方案_漏洞概念

POC自动获取复现:

直接在环境下运行POC,-u指定url,-v指定版本,返回

漏洞解决方案_漏洞概念_通达oa漏洞

替换浏览器存储的,成功以管理员身份登录OA系统。

通达oa漏洞_漏洞解决方案_漏洞概念

Poc:

~

网络安全学习,我们一起交流

~

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值