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

文章目录

  • 前言
  • 一、漏洞说明
  • 二、使用步骤
    • 1.首先抓首页的包进行更改
    • 2.而后使用POST方式提交相关参数
    • 3.使用GET方式访问传入关键参数codeuid
    • 三、POC生成cookie
    • 3、替换cookie
    • 二。 v11.5 未授权访问导致登录绕过
    • 三、v2013 v2015任意账户跳转
    • 四、v16 SQL注入
    • v 11.7 delete_cascade.php 后台SQL注入

前言

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


提示:以下是本篇文章正文内容,下面案例可供参考

一、漏洞说明

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

/ispirit/login_code.php

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

/general/login_code_scan.php

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

/ispirit/login_code_check.php


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

/general/index.php

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

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

简单点来说就是 调用了接口去查询uuid的密钥,借此登录。相当于sql注入
执行的SQL语句是
$sql=‘select sid from user_online where uid =" . KaTeX parse error: Can't use function '\'' in math mode at position 7: uid. '\̲'̲and client = \"…p_ver.’";
作用:查询用户是否在线,如在线返回此用户 session id

二、使用步骤

1.首先抓首页的包进行更改

首先抓首页的包进行更改,用GET方式访问/ispirit/login_code.php

通过返回包获取codeuid

2.而后使用POST方式提交相关参数

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

提交相关参数,其中codeuid需要改为上一步中返回的值。
payload:uid=1&codeuid={2448FFAD-A63E-F010-653B-8814A083440A}&type=confirm&source=pc&username=admin

3.使用GET方式访问传入关键参数codeuid

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

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

三、POC生成cookie

poc下载地址:

https://github.com/NS-Sp4ce/TongDaOA-Fake-User

生成cookie命令:

python poc.py -v 11 -url target_url

3、替换cookie

通过cookie修改插件,替换cookie之后,访问登录后得页面就可以绕过登录了

http:///general/index.php?isIE=0&modify_pwd=0
实际上这就是个sql注入,用于查询在线用户的对应PHPSESSID,根据密钥进行登录

替换cookie后

mobile/auth_mobi.php?isAvatar=1&uid=1&ip_VER=0

这里是看是否有回显,有回显就说明该用户未在线换uid继续搞,这种没回显的记录cookie,然后返回登录界面替换cookie就可登录。

参考链接:
https://cloud.tencent.com/developer/article/1632094
cookie属性
(1)HTTP-Only
服务端发送cookie的时候,可以设置HTTP-Only
Set-Cookie: SESSIONID=abc123; expires=Wednesday, 17-Nov-99 23:12:40 GMT; HttpOnly
这个参数的优点是不会被js获取
尝试打开有HTTP-Only cookie设置的网站
查看cookie
一般,session-id是用这个来判断即使有xss漏洞,也获取不了session-id相关的cookie值
(2)secure
设置cookie的某个值secure为True时:
此cookie只有在HTTPS协议中才会进行传输HTTP协议传输时,是不传输此协议的。
防御方法:
XSS漏洞引起的会话劫持:可以使用http-only来防止js获取cookie中的sessionid信息
会话劫持引起的会话劫持:可以使用HTTP-SSL(https)+secure来保证sessionid不被获取

二。 v11.5 未授权访问导致登录绕过

v11.5 logincheck_code.php存在登陆绕过漏洞,通过漏洞攻击者可以登录到后台
复现
http://ip:p/general/calendar/arrange/get_cal_list.php?starttime=1548058874&endtime=1597997506&view=agendaDay

三、v2013 v2015任意账户跳转

/interface/ugo.php?OA_USER=admin

通过控制OA_USER/参数进行任意用户的跳转,后接用户名,管理员默认为admin

四、v16 SQL注入

insert参数包含SQL注入漏洞,可通过此获取数据库信息
版本:v11.6
在登陆页面发送请求包

返回302则存在,500则不存在
存在就通过SQL获取sessionid进一步攻击

v 11.7 delete_cascade.php 后台SQL注入

可通过写入恶意后门文件攻击目标服务器,写一个新用户登录
触发拦截,盲注中:substr、if等都没过滤,在补天博客上发现power(99999,99)也可以使

某企业通达OA任意登录漏洞复现相关推荐

  1. E-office OA 任意文件下载漏洞复现

    目录 1.漏洞概述 2.影响范围 3.漏洞等级 4.漏洞复现 5.漏洞分析 6.漏洞修复 1.漏洞概述 泛微e-office

  2. 通达OA任意用户登录漏洞复现

    目录 通达OA任意用户登录漏洞 漏洞描述 影响范围 漏洞复现 通达OA任意用户登录漏洞

  3. 通达OA任意用户登录复现(最新)

    通达OA任意用户登录复现 0x00 漏洞简介 0x01 影响版本 0x02 环境搭建 0x03 漏洞复现 0x04 修复建议 0x00 漏洞简介 通达OA国内常用的办公系统,使用群体,大小公司都可以, ...

  4. 通达OA任意用户登录复现

    1.访问默认管理员后台地址 用户未登录, 弹出如下界面,猜测有通达OA任意用户登录漏洞 2.访问文件https://oaweb.hait.edu.cn//ispirit/login_code.php以 ...

  5. 通达OA v11.7 auth_mobi.php 在线用户登录漏洞复现

    通达OA v11.7 auth_mobi.php 在线用户登录漏洞复现 一.前言 通达OA,Office Anywhere的首字母,是通达信科旗下的品牌.通达OA v11.7 中存在某接口查询在线用户 ...

  6. 通达OA任意文件上传/文件包含RCE漏洞分析

    通达OA任意文件上传/文件包含RCE漏洞分析 0x01 前提 0x01 漏洞介绍 0x02 漏洞分析 首先下载安装 绕过身份验证文件上传部分 变量传递问题 文件包含部分 0x01 前提 关于这个漏洞的 ...

  7. 致远(用友)OA或M1 漏洞复现

    1. A6版本漏洞 1.1 Session泄露导致任意文件上传GetShell漏洞 漏洞简介: 致远OA通过发送特殊请求获取session,在通过文件上传接口上传特殊构造的恶意压缩包,并通过解压为we ...

  8. 通达OA前台任意用户伪造登录漏洞复现

    0x01简介 北京通达信科科技有限公司是一支以管理软件研发.实施.服务与咨询为主营业务的高科技企业,隶属于世界500强企业中国兵器工业集团公司. 2019最值得购买的OA系统排名 通达OA采用基于WE ...

  9. 通达OA任意用户伪造登录漏洞分析与复现

    2020年04月17日, 通达OA官方在更新了一个v11版本安全补丁, 其中修复了一个任意用户伪造登录漏洞.未经授权的攻击者可以通过构造进行任意用户登录(包括admin),登录之后可进一步上传恶意文件 ...

  10. 通达OA 任意用户登录漏洞复现

    0x00 漏洞描述 该漏洞类型为任意用户伪造,未经授权的远程攻击者可以通过精心构造的请求包进行任意用户伪造登录. 0x01 影响版本 通达OA < 11.5.200417 版本 通达OA 201 ...

最新文章

  1. 初识Linux——菜鸟篇
  2. ps cs6磨皮插件_【PS插件】ps磨皮插件Portraiture
  3. Java内部类实例测试及总结
  4. 六大排序原理(十六)
  5. exchange 日常管理之八:合并用户邮箱
  6. 从Retrofit的源码来看 HTTP
  7. 高通混频器配置文件如何选择
  8. 深入理解Scala 标识符,命名和域
  9. c java string转int_jni java和C之间的值传递(int String int[])
  10. 高并发下如何保证数据库和缓存双写一致性?
  11. ios 手势返回监听方法
  12. HttpModule 与 Globle.asax
  13. SpringBoot解决XSS跨站脚本攻击
  14. 经济基础知识(初级)【17】
  15. 计算机无法验证签名,电脑提示“无法验证此文件的数字签名”的修复方法
  16. 海康相机RTSP连接代码分析
  17. 关于UWB(超宽带)
  18. Hackathon 实用指南丨快速给 TiDB 新增一个功能
  19. 主机管理系统考虑的功能
  20. 工信部发布《移动互联网应用程序个人信息保护管理暂行规定(征求意见稿)》

热门文章

  1. Ubuntu系统安装ghostscript seq2logo
  2. 模块已加载但找不到入口点dllregisterserver
  3. bat批处理之for循环
  4. js制作简易班级抽签程序
  5. 成功在fedora 13 上安装 了libfetion
  6. c语言程序设计马秀丽课后题答案,c语言程序设计课后题答案马秀丽
  7. PTA2-6 打印学生选课清单(15 分)
  8. 安装深度linux系统卡住不动,简单有效!一招解决深度Linux死机问题
  9. 台达服务器电源原理电路图,详细解析开关电源电路:工作原理,电路组成,电路图...
  10. 通用网络版本md5算法和.net中md5算法接轨