影响版本
Struts 2.3.20 - Struts Struts 2.3.28(2.3.20.3和2.3.24.3除外)
吐槽:这个漏洞其实和S2-016差不多。
0x01 土亢
v2.3.20因该是误报,可能开发时候没注意写死了DefaultActionMapper.allowDynamicMethodCalls == false,恰好避免了漏洞 XD
需要开启动态代码调试
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
0x02 分析跟进分析
在前期准备阶段进入Prepar...
S2-033 影响版本
Struts 2.3.20 - Struts Struts 2.3.28(2.3.20.3和2.3.24.3除外)
S2-037 影响版本
Struts 2.3.20 - Struts Struts 2.3.28.1
2.3.20.3 & 2.3.24.3 & 2.3.28.1 为s2-033修复版本
吐槽:33跟32其实关系不大,只是payload大致通用,37算33的绕过。
0x01 踩坑测试基于2.3.20 rest-showcase
理解struts.xml配置容易让人头大
<!--默认包路径包含action,actions,st...
影响版本:
Struts 2.3.5 - Struts 2.3.31Struts 2.5 - Struts 2.5.10
漏洞产生原因主要在于使用Jakarta插件处理文件上传操作,对content-type处理
【占坑】分析基于2.3.30,貌似高版本触发点不太一样,原理大致相同
0x01 踩坑No, no I don’t give a… anymore.
0x02 分析跟进分析struct 使用java ee中的Filter去拦截请求,并实现自己的功能。也就是说,用户所发出的请求,首先会在org.apache.struts2.dispatcher.ng.filter中的StrutsP...
影响版本:
Struts 2.3.5 - Struts 2.3.31Struts 2.5 - Struts 2.5.10
漏洞产生原因主要在于使用Jakarta插件处理文件上传操作,对content-length以及filename处理
【占坑】分析基于2.3.30,貌似高版本触发点不太一样,原理大致相同
0x01 踩坑按照参考资料1部署就可以了
0x02 分析跟进分析
这里看了很多分析,最后感觉还是按处理类来辨析更好
i. JakartaMultiPartRequest
主要是利用空字节解析错误抛出错误,在对错误信息本地化时候造成了命令执行
项目配置
P.S. 此配置其实可以不...
影响版本:
Struts 2.0.0 - Struts 2.3.32
漏洞产生原因主要在于struts2-struts1-plugin插件
0x01 踩坑没有XD
0x02 分析跟进分析
按照官方漏洞说明,测试触发点
确认之后来查看执行流程,查看配置文件,所搜action对应的类org.apache.struts2.s1.StrutsAction
跟入execute,由于msg.getValues()为null,所以进入else,执行this.getText()(中间有点犯傻( ̄ε(# ̄),可以一直盯着值栈)
getText会先确定对应的TextProvider,然后调...
影响版本:
Struts 2.1.2 - Struts 2.3.33Struts 2.5 - Struts 2.5.12
漏洞产生原因主要在于对于xml文件的反序列化
0x01 又见踩坑终于不是部署时候的坑了,这回的坑在于了解struts.xml中的配置信息
此漏洞在于rest插件,所以部署rest-showcase即可
几个小tips:
marshal: 从非文本格式到文本格式的数据转化,如java对象->xml
unmarshal: marshal的逆过程,将xml->java对象
struts.xml
项目中的struts.xml,注意到这里的rest-defa...
影响版本:
Struts 2.0.1 - Struts 2.3.33Struts 2.5 - Struts 2.5.10
0x01 部署又见踩坑这回漏洞主要位于struts对freemarker处理的问题
表现层技术主要有三种:jsp、freemarker、velocity
idea生成maven项目,在pom.xml中添加依赖
<dependencies>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core...
影响版本:
Struts 2.3 - Struts 2.3.34
Struts 2.5 - Struts 2.5.16