Struts2 001
创始人
2025-05-30 03:09:33

0x00 前言

针对Struts2 系列漏洞进行记录,之前可能零零散散的看了一下,但是没有进行系统的记录,所以从头进行记录。

Demo是直接使用大佬们搭建好的,为了节约一下搭建环境的时间。

0x01 环境

Demo地址:https://github.com/xhycccc/Struts2-Vuln-Demo

配置好Tomcat之后启动:

在这里插入图片描述

0x02 漏洞复现

通过测试payload:%{1+1}

在这里插入图片描述

0x03 漏洞分析

1.调用链

getValue:333, Ognl (ognl)
getValue:192, OgnlUtil (com.opensymphony.xwork2.util)
findValue:244, OgnlValueStack (com.opensymphony.xwork2.util)
translateVariables:123, TextParseUtil (com.opensymphony.xwork2.util)
translateVariables:72, TextParseUtil (com.opensymphony.xwork2.util)
findValue:303, Component (org.apache.struts2.components)
evaluateParams:680, UIBean (org.apache.struts2.components)
end:450, UIBean (org.apache.struts2.components)
doEndTag:36, ComponentTagSupport (org.apache.struts2.views.jsp)

2.漏洞分析

入口是在username,因为我们的测试也是从username进行的。
在这里插入图片描述
调用this.component.end
在这里插入图片描述
通过调用evaluateParams来处理jsp的动态数据

在这里插入图片描述解析nameValue:this.addParameter

在这里插入图片描述
调用TextParseUtil.translateVariables,也就是xwork2中的方法,这里就会针对ognl进行处理,那么也就是说如果找到了这个的调用位置,也就是发现了Ognl的相关漏洞

在这里插入图片描述
循环解析Ognl
![在这里插入图片描述](https://img-blog.csdnimg.cn/8c09d25f7f164aafa2c0285f7a5240c1.png

最终的调用位置在:getValue:192, OgnlUtil (com.opensymphony.xwork2.util),这里是直接调用了Ognl.getValue进行了ognl解析
在这里插入图片描述

0x04 修复方式

在2.04中,通过判断抛出了循环,不再进行解析
在这里插入图片描述
以上

相关内容

热门资讯

Vivado device窗口... 目录 一、前言 二、时钟site介绍 三、时钟site分布 四、时钟site驱动逻辑 一、前言 ...
数模笔记——论文写作 论文写作 各模块写作要点 数学建模论文的重要性 数学建模论文的写作是数学建模中重要的一个环节。数学建...
IDEA打印项目执行最终执行s... 一、下载插件1、MyBatis Log Plugin随着IDEA 升级到 2020.2 版本之后开始...
Harmony(鸿蒙)开发手机... Harmony环境使用Bee入门向导 一、添加jar包 将bee相关的3个jar包复制到entry包...
到底线程要怎么去编程?线程类有... 上篇文章我们介绍了到底什么是线程,线程与进程的区别,线程怎么去创建的五种...
linux环境下利用rsync... 文章目录前言插曲根据时间段同步按时间过滤文件使用 mtime 参数查找使用 newermt 进行更精...
学习周报3.19 文章目录前言文献阅读摘要简介问题定义方法结论克里金插值法(Kriging法࿰...
Java设计模式 03-原型模... 原型模式 一、克隆羊问题 现在有一只羊 tom,姓名为: tom, 年龄为࿱...
数据库select操作 插入数据时,一次插入多条数据,比多次插入多条同样的数据消耗时间少很多。 ...
搭建 Spring 源码阅读环... 1、下载gradle https://gradle.org/releases/ 解压到磁盘 2、配...
北斗星1.4排量百公里油耗(北... 本篇文章极速百科给大家谈谈北斗星1.4排量百公里油耗,以及北斗星14真实油耗72什么情况对应的知识点...
汽车安全性能排行榜(车辆安全性... 本篇文章极速百科给大家谈谈汽车安全性能排行榜,以及车辆安全性能排名对应的知识点,希望对各位有所帮助,...
门客是什么意思(君子不打上门客... 今天给各位分享门客是什么意思的知识,其中也会对君子不打上门客是什么意思进行解释,如果能碰巧解决你现在...
灶糖是啥(灶糖的功效和作用) ... 本篇文章极速百科给大家谈谈灶糖是啥,以及灶糖的功效和作用对应的知识点,希望对各位有所帮助,不要忘了收...
[CMake] CMake 进... CMake 进阶 代码生成 代码生成是指使用一些通用的描述文件,可以自动生成源代码&#...
文法的形式定义 一、序列的集合称为形式语言序列的集合称为形式语言二、形式语言的描述当语言是有穷集合时,...
人事部是干什么的(人力资源管理... 今天给各位分享人事部是干什么的的知识,其中也会对人力资源管理吃香吗进行解释,如果能碰巧解决你现在面临...
透明的反义词是什么(透明的反义... 本篇文章极速百科给大家谈谈透明的反义词是什么,以及透明的反义词是什么最佳答案对应的知识点,希望对各位...
清道夫鱼能吃吗(清道夫鱼能吃吗... 今天给各位分享清道夫鱼能吃吗的知识,其中也会对清道夫鱼能吃吗?有什么功效进行解释,如果能碰巧解决你现...
科研之友是什么(科研之友是干什... 本篇文章极速百科给大家谈谈科研之友是什么,以及科研之友是干什么的对应的知识点,希望对各位有所帮助,不...
Android framewo... 启动篇 android-12.0.0_r28\frameworks/base/services/ja...
Windows10及其Wind... 一、需求说明在日常实施运维工作中,通常需要设置指定的软件在Windows系统或Wind...
StampedLock 一、邮戳锁的介绍 邮戳锁(StampedLock)是一个java.util.concurrent.l...
宝马X5宝马X5最新报价-图片... 本篇文章极速百科给大家谈谈宝马X5宝马X5最新报价-图片-参数,以及宝马x5l报价及图片2021款对...
电机与减速机(电机与减速机如何... 本篇文章极速百科给大家谈谈电机与减速机,以及电机与减速机如何搭配对应的知识点,希望对各位有所帮助,不...
车标大全:这些汽车车标你全都认... 今天给各位分享车标大全:这些汽车车标你全都认识吗?的知识,其中也会对车标车标志大全及名字进行解释,如...
abcb式的成语(abcb式的... 本篇文章极速百科给大家谈谈abcb式的成语,以及abcb式的成语二年级对应的知识点,希望对各位有所帮...
string类(上) string类(上)1.标准库中的string类2.string类对象的...
七夕什么节(七夕什么节曰) 七... 今天给各位分享七夕什么节的知识,其中也会对七夕什么节曰进行解释,如果能碰巧解决你现在面临的问题,别忘...
高尔夫7代怎么样(高尔夫7怎么... 今天给各位分享高尔夫7代怎么样的知识,其中也会对高尔夫7怎么样14T进行解释,如果能碰巧解决你现在面...