漏洞名称S2-048CVE-2017-9791远程命令执行利用条件Struts2.3.x开启Struts1pluginandStruts1action插件漏洞原理漏洞产生的原因是将用户可控的值添加到ActionMessage并在客户前端展示,导致其进入getText函数,最后message被当作ognl表达式执行所以访问/integration/saveGangster.action;并构造payload检测。漏洞利用漏洞探测触发OGNL表达式的位置是GangsterName这个表单输入${33*3}即可查看执行结果(剩下两个表单随意填写)漏洞利用命令执行poc1%{(#dm=@ognl.Og
漏洞名称S2-061CVE-2020-17530远程代码执行利用条件Struts2.0.0-Struts2.5.25漏洞原理s2-061漏洞产生的原因是Struts2会对某些标签属性(比如id,其他属性有待寻找)的属性值进行二次表达式解析,因此当这些标签属性中使用了%{x}且x的值用户可控时,用户再传入一个%{payload}即可造成OGNL表达式执行。S2-061是对S2-059沙盒进行的绕过。漏洞利用漏洞检测命令执行payload1%{(#request.map=#application.get('org.apache.tomcat.InstanceManager').newInstanc
漏洞名称S2-061CVE-2020-17530远程代码执行利用条件Struts2.0.0-Struts2.5.25漏洞原理s2-061漏洞产生的原因是Struts2会对某些标签属性(比如id,其他属性有待寻找)的属性值进行二次表达式解析,因此当这些标签属性中使用了%{x}且x的值用户可控时,用户再传入一个%{payload}即可造成OGNL表达式执行。S2-061是对S2-059沙盒进行的绕过。漏洞利用漏洞检测命令执行payload1%{(#request.map=#application.get('org.apache.tomcat.InstanceManager').newInstanc
0x01前言复现一下S2-002的洞0x02S2-002漏洞简介Struts2-002 是一个 XSS 漏洞,该漏洞发生在 s:url 和 s:a 标签中,当标签的属性 includeParams=all 时,即可触发该漏洞。漏洞影响版本Struts2.0.0-Struts2.1.8.10x03环境搭建如果不想手动搭建的话,环境我已经配好了 https://github.com/Drun1baby/JavaSecurityLearning/tree/main/JavaSecurity/Struts2/S2-002AndS2-006因为s2-002的洞是一个XSS,与处理的Action没有任何关
0x01前言复现一下S2-002的洞0x02S2-002漏洞简介Struts2-002 是一个 XSS 漏洞,该漏洞发生在 s:url 和 s:a 标签中,当标签的属性 includeParams=all 时,即可触发该漏洞。漏洞影响版本Struts2.0.0-Struts2.1.8.10x03环境搭建如果不想手动搭建的话,环境我已经配好了 https://github.com/Drun1baby/JavaSecurityLearning/tree/main/JavaSecurity/Struts2/S2-002AndS2-006因为s2-002的洞是一个XSS,与处理的Action没有任何关