CVE-2019-0230 s2-059 漏洞分析1
需积分: 0 123 浏览量
更新于2022-08-03
收藏 257KB PDF 举报
CVE-2019-0230 s2-059 漏洞分析
Apache Struts 框架中的 CVE-2019-0230 漏洞是远程代码执行(RCE)漏洞,影响范围为 Struts 2.0.0 - Struts 2.5.20。官方建议升级到 2.5.22 或更高版本。该漏洞的成因是 Struts 框架在强制时对分配给某些标记属性的属性值执行双重计算,以便可以传递一个值,该值将在呈现标记的属性时再次计算。
在 Struts 标记属性内强制使用 OGNL 表达式时,如果攻击者能够修改请求中的属性,使原始 OGNL 表达式传递到属性而无需进一步验证,则当作为请求呈现标记时,属性中包含的提供的 OGNL 表达式将计算。例如,在 `<s:a id="%{skillName}" href="%{url}">List available Employees</s:a>` 中,如果攻击者能够修改 `skillName` 或 `url` 属性,可能会导致远程代码执行。
在 debug 过程中,我们可以看到在 `ComponentTagSupport` 类的 `doStartTag()` 函数的第一行,`this` 的 `href` 属性就是 `xxx.jsp`。然后,在 `populateParams()` 函数中,我们可以看到 `uiBean` 的各种属性的设置,例如 `setId`、`setCssClass`、`setCssStyle` 等。
在 `AbstractUITag` 类的 `populateParams()` 操作中,我们可以看到 `uiBean` 的 `setId` 操作,例如 `uiBean.setId(this.id)`。通过跟进 `findString` 和 `findValue` 函数,我们可以看到 Struts 框架如何处理 OGNL 表达式的计算。
因此,在使用 Struts 框架时,需要小心处理 OGNL 表达式的使用,以免导致远程代码执行漏洞。同时,升级到最新版本的 Struts 框架也可以避免该漏洞。
知识点:
1. Apache Struts 框架的 CVE-2019-0230 漏洞是远程代码执行(RCE)漏洞。
2. 漏洞的成因是 Struts 框架在强制时对分配给某些标记属性的属性值执行双重计算。
3. Struts 标记属性内强制使用 OGNL 表达式时,如果攻击者能够修改请求中的属性,使原始 OGNL 表达式传递到属性而无需进一步验证,则可能会导致远程代码执行。
4. 在 debug 过程中,需要关注 `ComponentTagSupport` 类的 `doStartTag()` 函数和 `AbstractUITag` 类的 `populateParams()` 操作。
5. 使用 Struts 框架时,需要小心处理 OGNL 表达式的使用,以免导致远程代码执行漏洞。
6. 升级到最新版本的 Struts 框架可以避免该漏洞。
![avatar](https://profile-avatar.csdnimg.cn/3b687c7a3ad3453c9638315ec4107f37_weixin_35747299.jpg!1)
ali-12
- 粉丝: 34
- 资源: 328
最新资源
- 围栏破损检测数据集,954张,带有txt和xml格式的标注
- WPF基于FFmpeg做的媒体转换器 软件支持音频转换、视频转换、视频压缩、视频编辑、合并转换等多种功能.zip
- STM32H750驱动的四轴飞行器实验源码:基于IMU模块的通用四旋翼功能实现,涵盖滤波、控制与通信技术,STM32H750驱动的四轴飞行器实验源码:基于imu模块的滤波、控制与通信技术实现四旋翼通用
- 基于PSO-CNN算法的优化与分类预测:多特征输入单输出模型的迭代混淆矩阵分析图解,PSO-CNN算法优化卷积神经网络分类预测模型:多特征输入迭代优化与混淆矩阵分析的二分类与多分类模型图解,PSO-C
- MicroPython ESP32 ,SSD1306 OLED 显示中文汉字
- 一种基于无监督学习的全局水平辐照度估算方法在光伏功率测量中的应用,全球视角下的无监督光伏功率测量方法:精准估算全局水平辐照度,一种估算光伏功率测量全局水平辐照度的无监督方法 ,核心关键词:光伏功率测量
- 基于PLC的立体车库设计:西门子S7-1200PLC程序与组态仿真技术,电路图及IO表详解,博途软件应用指南,基于PLC的立体车库设计与西门子S7-1200PLC程序开发 通过组态仿真及电路设计,包括
- 基于深度学习的GCNN神经网络模型在EEG数据诊断神经疾病中的应用研究,**GCNN在脑电图EEG神经疾病诊断中的应用:领域引导图卷积神经网络的增强源码数据集**,DL00507-使用领域引导图卷积神
- 智链触屏mqtt通讯协议v2.0(1).pdf
- TortoiseSVN-1.9.7.27907-x64-svn-1.9.7.msi
- 基于Matlab Simulink的电气工程仿真教学:涵盖控制算法与仿真模型制作,基于Matlab Simulink的自动控制教学辅导系统:涵盖控制算法与仿真模型制作实践,代Matlab Simuli
- .NET 面试宝典-2025
- 异步电机与感应电机仿真模型组合推荐:涵盖数学基础模型、无位置速度辨识等十多个模型,适用多种版本,总价特惠 ,基于Matlab/Simulink平台的异步电机与感应电机仿真模型打包,涵盖多种控制策略模型
- Maven Home Path配置Use Maven wrapper时的.mvn文件
- 自动睡眠阶段评分:基于序列到序列深度学习方法的单通道脑电图分析,基于DL00338的序列到序列深度学习自动睡眠阶段评分系统研究与实现,DL00338-使用序列到序列深度学习方法自动睡眠阶段评分 深度学
- 随机孔隙模型与小球生成仿真在光学与微波颗粒加热中的应用:COMSOL与MATLAB联合仿真探究,基于随机孔隙模型与小球生成仿真的光学及微波颗粒加热COMSOL与MATLAB联合仿真研究,随机孔隙模型与