Java 框架安全:Struts2 漏洞序列测试.

什么是 Struts2  框架

Struts 2 是一个用于创建企业级 Java 应用程序的开源框架。它是一个 MVC(模型-视图-控制器)框架,用于开发基于 Java EE(Java Platform, Enterprise Edition)的 Web 应用程序。Struts 2 主要解决了在动态 Web 应用程序中请求处理和用户界面表示分离的问题。


目录:

什么是 Struts2  框架

Struts 2 框架遇到了一些严重的安全漏洞:

开启 漏洞 靶场:

(1)查看目录:

(2)启用 vulhub 漏洞:

(3)进行浏览:主机的 8080 端口.

进行 漏洞 测试:

(1)查看是不是 Struts2 框架.(查看数据包的信息)

(2)如果知道他是这个漏洞,则可以自己使用工具进行测试。

(3)漏洞的利用:

(4)如果漏洞是 S2-061 和 S2-062  进入 GitHub 直接搜索:

为了应对这些漏洞,开发者应采取以下措施:


Struts 2 框架遇到了一些严重的安全漏洞:

这些漏洞可能导致各种安全攻击,包括但不限于远程代码执行(RCE)、跨站脚本攻击(XSS)、
跨站请求伪造(CSRF)等。以下是一些 Struts 2 框架中曾经出现过的著名漏洞:

1. 远程代码执行(RCE)漏洞:这是 Struts 2 框架中最严重的安全问题之一,它允许攻击者远程
执行服务器上的代码。这类漏洞通常是由于框架处理用户输入不当导致的,攻击者可以利用这些漏洞
执行任意代码, potentially leading to complete control over the affected system.

2. OGNL 表达式注入漏洞:Struts 2 使用 OGNL(Object Graph Navigation Language)作为其
表达式语言,不当的使用或验证不充分可能导致攻击者通过 OGNL 注入攻击访问受保护的属性或执行
恶意操作。

3. 文件上传漏洞:Struts 2 的文件上传功能可能存在缺陷,如未经验证的文件名、文件类型或文件
大小,可能导致恶意文件上传,进而可能导致服务器被上传的恶意文件破坏。

4. 跨站脚本攻击(XSS)漏洞:如果 Struts 2 没有正确地处理或转义用户输入,可能导致 XSS 攻击
,攻击者可以注入恶意脚本,当其他用户查看受影响的内容时,这些脚本会在他们的浏览器上执行。

5. 跨站请求伪造(CSRF)漏洞:Struts 2 框架本身没有提供内置的 CSRF 保护机制。如果不正确
配置或没有在应用程序中实施额外的安全措施,Struts 2 应用程序可能容易受到 CSRF 攻击。

6. 会话管理漏洞:Struts 2 的会话管理可能存在缺陷,如会话固定或会话泄露,可能导致攻击者窃取
或操纵用户会话。

开启 漏洞 靶场:

Web安全:iwebsec || vulhub 靶场搭建.(各种漏洞环境集合,一键搭建漏洞测试靶场)_iwebsec靶场-CSDN博客


(1)查看目录:

(1)cd vulhub
 
(2)ls


(2)启用 vulhub 漏洞:

(1)cd struts2                    // 切换到对应的漏洞目录.
 
(2)cd s2-046                       // 切换到对应的漏洞版本.

(3)docker-compose build           // 建立容器

(4)docker-compose up -d           //   启用漏洞环境.

​ 


(3)进行浏览:主机的 8080 端口.


进行 漏洞 测试:

(1)查看是不是 Struts2 框架.(查看数据包的信息)


(2)如果知道他是这个漏洞,则可以自己使用工具进行测试。(这里的 全部 包含很多的 Struts2 编号漏洞)


(3)漏洞的利用:


(4)如果漏洞是 S2-061 和 S2-062  进入 GitHub 直接搜索:

https://github.com/z92g/CVE-2021-31805

为了应对这些漏洞,开发者应采取以下措施:

(1)保持 Struts 2 框架的最新状态,及时应用安全补丁。
 
(2)在应用程序中实施严格的安全措施,如输入验证、输出编码、安全配置和最小权限原则。

(3)使用安全插件和工具来帮助检测和防止安全漏洞。
 
(4)定期进行安全审计和代码审查,以确保新引入的代码没有安全问题。

  

  

  

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

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

相关文章

ROS机器人实用技术与常见问题解决

问题速查手册(时实更新)更加全面丰富的问题手册记录 1.机器人使用GPARTED挂载未分配空间 需要在图型界面下操作,建议使用no machine连接 安装gparted磁盘分区工具, sudo apt-get install gparted -y 启动软件 sudo gparted 点击磁盘/内存…

C# OpenCvSharp 图片找茬

C# OpenCvSharp 图片找茬 目录 效果 项目 代码 下载 效果 项目 代码 using OpenCvSharp; using System; using System.Diagnostics; using System.Drawing; using System.Windows.Forms; namespace OpenCvSharp_Demo { public partial class Form1 : Form { …

1688快速获取整店铺列表 采集接口php Python

在电子商务的浪潮中,1688平台作为中国领先的批发交易平台,为广大商家提供了一个展示和销售商品的广阔舞台;然而,要在众多店铺中脱颖而出,快速获取商品列表并进行有效营销是关键。 竞争对手分析 价格比较:…

mysql5.7数据库安装及性能测试

mysql5.7数据库安装及性能测试 记录Centos7.9下安装mysql 5.7并利用benchmark工具简单测试mysql的性能。 测试机:centos7.9 配置:4C8G40G 1. 下安装mysql5.7 安装mysql5.7: # 通过官方镜像源安装$ wget http://dev.mysql.com/get/mysql57-com…

pandas索引

pandas索引 一、索引1.1 建立索引1.2 重置索引1.3 索引类型1.4 索引的属性1.5 索引的操作 一、索引 1.1 建立索引 建立索引可以在数据读取加载中指定索引: import pandas as pd df pd.read_excel(team.xlsx, index_colname) # 将name列设置为索引 df.head()效…

C语言 函数的定义与调用

上文 C语言 函数概述 我们对函数进行了概述 本文 我们来说函数的定义和调用 C语言规定 使用函数之前,首先要对函数进行定义。 根据模块化程序设计思想,C语言的函数定义是互相平行、独立的,即函数定义不能嵌套 C语言函数定义 分为三种 有参函…

Kansformer?变形金刚来自过去的新敌人

​1.前言 多层感知器(MLPs),也被称为全连接前馈神经网络,是当今深度学习模型的基础组成部分。 MLPs在机器学习中扮演着至关重要的角色,因为它们是用于近似非线性函数的默认模型,这得益于通用近似定理所保证的表达能力。然而,MLPs真的是我们能构建的最佳非线性回归器吗?尽管ML…

鸿蒙OpenHarmony南向:【Hi3516标准系统入门(命令行方式)】

Hi3516标准系统入门(命令行方式) 注意: 从3.2版本起,标准系统不再针对Hi3516DV300进行适配验证,建议您使用RK3568进行标准系统的设备开发。 如您仍然需要使用Hi3516DV300进行标准系统相关开发操作,则可能会…

人工智能编程的创新探索 卧龙与凤雏的畅想

在一间宽敞明亮的办公室内,阳光透过窗户洒在地上,形成一片片光斑。卧龙和凤雏正坐在舒适的办公椅上休息,享受着这片刻的宁静。 卧龙微微皱眉,一只手托着下巴,略显苦恼地说道:“现在的人工智能,也…

vue2人力资源项目5组织架构的增删改查

编辑表单回显 父组件:这里用到了父亲调子组件的方法和同步异步先后方法的处理 //methods里else if (type edit) {this.showDialog true// 显示弹层this.currentNodeId id// 记录id,要用它获取数据// 在子组件中获取数据// 父组件调用子组件的方法来获…

【力扣】203、环形链表 II

142. 环形链表 II 要解决这道题,首先需要对问题进行拆解: 确定链表是否存在环确定环的入口点 如何判断是否存在环呢?这个比较容易想到,使用快慢指针即可判断链表是否存在环。我们定义两个指针: ListNode slow head…

Redis学习4——Redis应用之限流

引言 Redis作为一个内存数据库其读写速度非常快,并且支持原子操作,这使得它非常适合处理频繁的请求,一般情况下,我们会使用Redis作为缓存数据库,但处理做缓存数据库之外,Redis的应用还十分广泛&#xff0c…

远程服务器 docker XRDP 桌面访问 记录

需求描述: 我现在在远程连接 一台服务器,由于需要实验环境需要GUI 和 桌面系统,但是又想在 docker 中运行。因此,我现在首先需要通过 ssh 连接服务器,然后再服务器中连接 docker. REF: https://github.com/danielguerra69/ubuntu-…

代码随想录day19day20打卡

二叉树 1 二叉树的最大深度和最小深度 最大深度已经学习过了,实质就是递归的去判断左右子节点的深度,然后对其进行返回。 附加两个学习的部分: (1)使用前序遍历的方法求解 int result; void getdepth(TreeNode* nod…

NXP i.MX8系列平台开发讲解 - 3.11 Linux PCIe设备调试(WIFI模块)

专栏文章目录传送门:返回专栏目录 文章目录 目录 1. WIFI 模块简单介绍 2. 设备驱动原理介绍 3. PCIE WIFI驱动实例分析 3.1 查看设备树 3.2 wifi 设备驱动代码分析 3.3 内核配置选项 4. WIFI驱动调试相关 根据前面对PCIe的讲解,对PCIe的整体都有…

Ansible --- playbook 脚本+inventory 主机清单

一 inventory 主机清单 Inventory支持对主机进行分组,每个组内可以定义多个主机,每个主机都可以定义在任何一个或 多个主机组内。 如果是名称类似的主机,可以使用列表的方式标识各个主机。vim /etc/ansible/hosts[webservers]192.168.10.1…

Flutter弹窗链-顺序弹出对话框

效果 前言 弹窗的顺序执行在App中是一个比较常见的应用场景。比如进入App首页,一系列的弹窗就会弹出。如果不做处理就会导致弹窗堆积的全部弹出,严重影响用户体验。 如果多个弹窗中又有判断逻辑,根据点击后需要弹出另一个弹窗,这…

C++ Primer 总结索引 | 第十四章:重载运算与类型转换

1、C语言定义了 大量运算符 以及 内置类型的自动转换规则 当运算符 被用于 类类型的对象时&#xff0c;C语言允许我们 为其指定新的含义&#xff1b;也能自定义类类型之间的转换规则 例&#xff1a;可以通过下述形式输出两个Sales item的和&#xff1a; cout << item1 …

信息系统安全与对抗-网络侦查技术与网络扫描技术(期末复习)

1、网络拓扑结构在网络攻击中的作用 查明目标网络的拓扑结构&#xff0c;有利于找到目标网络的关键节点&#xff0c;从而提高攻击效率&#xff0c;达到最大攻击效果。 2、网络侦查在网络攻击中的作用 识别潜在目标系统&#xff0c;确认目标系统适合哪种类型的攻击。 3、百度…

jenkins部署服务到windows系统服务器

1、安装openSSH windows默认不支持ssh协议&#xff0c;需要下载安装&#xff0c;主要适用于jenkins传输文件已经执行命令使用 点击查看下载openSSH 2、项目配置 这里简单说说怎么配置&#xff0c;主要解决点就是ssh执行cmd或shell命令时不能开启新窗口导致应用部署失败或者断…