• Spring Boot Actuator详解与漏洞利用



    一、SpringBoot介绍

    Spring Boot (Java平台上的一种开源应用框架)

    由Pivotal团队提供的全新框架,其设计的目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。


    二、SpringBoot特性

    Spring Boot所具备的特性:

    (1) 可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
    (2) 内嵌Tomcat或Jetty等Servlet容器;
    (3) 提供自动配置的 "starter"项目对象模型(POMS)以简化Maven配置;
    (4) 尽可能自动配置Spring容器;
    (5) 提供准备好的特性,如指标、健康检查和外部化配置;
    (6) 绝对没有代码生成,不需要XML配置。


    三、Actuator介绍

    Actuator 是Spring Boot提供的对应用系统的监控管理的集成功能,可以查看应用配置的详细信息,例如自动化配置信息、创建的Spring beans信息、系统环境变量的配置信息以及Web请求的详细信息等。在Actuator启用的情况下,如果没有做好相关权限控制。非法用户可通过访问默认的执行器端点(endpoints)来获取应用系统中的监控信息。常常使用不当或者一些不经意的疏忽,可能造成信息泄漏等严重的安全隐患。

    挖掘Actuator配置不当 的漏洞分为如下两步:

    • 判断和识别测试项目的web应用采用的框架为Springboot框架;
    • 尝试进行执行器端点路径的枚举,并根据实际情况加以利用;

    四、识别SpringBoot

    如何识别Spring Boot

    方法一:

    访问Web界面,观察地址栏或者标签页的前面的有一个这样的在这里插入图片描述
    (是否为绿色的小树叶)icon图标,这里的图标如果开发没有做修改的话,spring框架默认为这个图标。
    在这里插入图片描述
    方法二:

    构造错误的目录或者文件名等,让Spring框架产生默认的报错页面,一般访问这种页面都会出现如图所示的报错页面(如果开发人员没有修改Springboot框架的默认400500等的报错页面,也称为白标签报错页),到这里基本上可以确定Spring Boot框架了。
    在这里插入图片描述
    在实际的做法中两种方法综合进行判断,如果说符合以上两种情况就基本确定是Springboot框架,就可以尝试进行下一步的端点路径的枚举操作了。

    五、端点路径的枚举

    路径的枚举一般通过使用手动或者脚本测试所有可能存在的所有父目录子目录,然后利用脚本对父目录以及子目录进行探测,确定是否存在actuator执行端点的路径。

    Actuator提供的执行器端点分为两类:原生端点和用户自定义扩展端点。

    原生端点主要包括:
    在这里插入图片描述
    这里需要注意的是: 有些程序员会自定义/manage/management、项目App相关名称为spring根路径 Spring Boot Actuator 1.x版本默认内置路由的起始路径为 / 2.x版本则统一以/actuator为起始路径 Spring Boot Actuator默认的内置路由名字,如 /env 有时候也会被程序员修改,比如修改为 /appenv

    Actuator两个版本路径如下:

    在这里插入图片描述
    在这里插入图片描述
    对于寻找漏洞比较重要接口的有:

    在这里插入图片描述

    六、漏洞的利用

    在以上的操作实施过程中,如果确定发现了actuator的配置漏洞,如需要证明或继续利用该漏洞挖掘其他漏洞,进而组合利用等,就需要进行其他操作,总结几个常见利用场景。

    在这里插入图片描述

    七、Spring Boot Actuator未授权访问漏洞

    漏洞介绍

    Spring Boot Actuator模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP跟踪等,帮助监控和管理Spring Boot应用。这个模块是一个采集应用内部信息暴露给外部的模块,上述的功能都可以通过HTTP和JMX访问。

    Actuator是Spring Boot提供的应用系统监控的开源框架。 在攻防场景里经常会遇到Actuator配置不当的情况,攻击者可以直接下载headdump堆转储文件,然后通过一些工具来分析headdump文件,从而进一步获取敏感信息。

    环境搭建

    靶机环境:Windows10+jdk1.8.0_231
    环境下载

    git clone https://github.com/callicoder/spring-boot-actuator-demo.git
    cd spring-boot-actuator-demo-master
    mvn package
    java -jar target/actuator-demo-0.0.1-SNAPSHOT.jar
    
    • 1
    • 2
    • 3
    • 4

    mvn工具下载:https://maven.apache.org/download.cgi

    在执行mvn package会出现如下报错
    在这里插入图片描述
    因为我们使用的没有IDE,所以在这可以用这个方法:
    在maven的bin目录下找到mvn.cmd文件,在文件中输入你jdk当前所在的路径,像这样
    在这里插入图片描述
    保存! 重新编译,等待一会,编译成功如下:
    在这里插入图片描述
    启动环境->java -jar target/actuator-demo-0.0.1-SNAPSHOT.jar
    在这里插入图片描述
    在这里插入图片描述
    本地访问,此时环境已搭建完成!

    漏洞探测&利用

    首先使用工具fscan来探测一下是否存在漏洞
    在这里插入图片描述

    springboot-env-unauth

    根据Actuator两个版本的目录进行访问(2.x)
    在这里插入图片描述
    在这里插入图片描述
    通过两个目录都是未认证直接访问到配置信息,攻击者可根据泄漏的信息进一步利用。

    spring-actuator-heapdump

    其实在实战中,最重要的就是heapdump文件,文件里面理论上可以发现很多敏感的数据库之类的信息。

    该文件可以直接下载到本地来,使用专业工具进行解密;

    专业工具地址:heapdump_tool.jar

    使用方法:java -jar heapdump_tool.jar heapdump
    在这里插入图片描述
    没什么可用的信息,可能是刚刚搭建环境的原因吧,也可以试试其他方式获取相关信息,可参考链接:https://mp.weixin.qq.com/s/JKq4WxFKwh7IDIAqTKcTHw

  • 相关阅读:
    401、基于51单片机的电压源(2挡,LCD1602,36V)(程序+Proteus仿真+原理图+流程图+元器件清单+硬件系统框图+配套资料等)
    (附源码)springboot企业合同管理系统 毕业设计 161456
    python异步编程之asyncio高阶API
    数字孪生金融网点建设方案,应用架构可视化。
    数字图像处理练习题整理 (三)
    OJ题讲解——栈与队列
    MyBatis和Hibernate的区别
    9.7 小结
    双十一最值得入手的好物有哪些,盘点五款最值得入手的好物分享
    mysql 多个字段 like 同一个值怎么实现
  • 原文地址:https://blog.csdn.net/weixin_46944519/article/details/126424470