当前位置: 首页 > news >正文

网安系列【18】之SpringBoot漏洞

文章目录

  • Spring
  • Actuator端点信息
  • 框架特征及发现
    • 框架特征
    • 框架识别
  • 漏洞利用
    • 获取敏感信息
    • 获取被*号脱敏的密码明文
    • Getshell

Spring

  • Spring是javaweb里常见的组件,好用的漏洞主要是Spring BootActuators 反序列化。
  • Spring Boot 基本上是 Spring 框架的扩展。Actuator 是 springboot 提供的用来对应用系统进行自省和监控的功能模块,借助于Actuator开发者可以很方便地对应用系 统某些监控指标进行查看、统计等。
  • 在 Actuator 启用的情况下,如果没有做好相关权限控制,非法用户可通过访问默认的执行器端点(endpoints)来获取应用系统中的监控信息。

Actuator端点信息

端点路径功能描述
/autoconfig提供自动配置报告,记录哪些自动配置条件通过,哪些未通过
/configprops描述配置属性(包含默认值)如何注入到 Bean 中
/beans描述应用程序上下文中全部的 Bean 及其关系
/dump获取线程活动的快照
/env获取全部环境属性
/env/{name}根据名称获取特定的环境属性值
/health报告应用程序的健康指标,由 HealthIndicator 的实现类提供
/info获取应用程序的定制信息,由 info 开头的属性提供
/mappings描述全部的 URI 路径及其与控制器(包含 Actuator 端点)的映射关系
/metrics报告各种应用程序度量信息,如内存用量和 HTTP 请求计数
/metrics/{name}报告指定名称的应用程序度量值
/shutdown关闭应用程序,需将 endpoints.shutdown.enabled 设置为 true(默认 false)
/trace提供基本的 HTTP 请求跟踪信息(如时间戳、HTTP 头等)

框架特征及发现

框架特征

在这里插入图片描述

框架识别

  • 小绿叶、404报错。
  • 脚本工具:https://github.com/rabbitmask/SB-Actuator。

漏洞利用

获取敏感信息

  • 由于actuator会监控站点 mysql、mangodb 之类的数据库服务,所以通过监控信息,可以获得mysql、mangodb等数据库相关信息。主要通过/env路径获取这些服务的配置信息。

获取被*号脱敏的密码明文


条件:

  • 目标网站存在/jolokia接口
  • 目标使用jolokia-core依赖
  • 目标使用spring-cloud依赖
    步骤一:找到想要获取的属性名
    步骤二:jolokia 调用 org.springframework.cloud.context.environment Mbean 获取明文
    在这里插入图片描述

Getshell

  • 利用反序列化进行getshell(通过修改env配置文件进行xstream反序列化)
  • 前置条件:Eureka-Client<1.8.7(多见于Spring Cloud Netflix)
  • spring-boot-starter-actuator(/refresh刷新配置需要)
  • spring-cloud-starter-netflix-eureka-client (功能依赖)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
python3 flask xstream.py flask_xstream.py

在这里插入图片描述
在这里插入图片描述

http://www.dtcms.com/a/273741.html

相关文章:

  • React Three Fiber 实现 3D 模型点击高亮交互的核心技巧
  • 小架构step系列11:单元测试引入
  • Rocky Linux上使用NVM安装Node.js 18
  • 老系统改造增加初始化,自动化数据源配置(tomcat+jsp+springmvc)
  • 大数据时代UI前端的用户体验设计新思维:以数据为驱动的情感化设计
  • golang -gorm 增删改查操作,事务操作
  • 分布式推客系统全栈开发指南:SpringCloud+Neo4j+Redis实战解析
  • Neo4j启动
  • 从一到无穷大 #47:浅谈对象存储加速
  • 基于vscode的go环境安装简介
  • 企业级LLM知识库:构建智能知识管理平台,赋能业务增长
  • 降本增效!上云真香!
  • 如何批量旋转视频90度?
  • 基于Selenium和FFmpeg的全平台短视频自动化发布系统
  • 通过命名空间引用了 Application 类,php不会自动包含路径文件吗?
  • Vue 中的属性绑定:从基础到实战进阶
  • docker0网卡没有ip一步解决
  • Kotlin基础
  • leetcode 3169. 无需开会的工作日 中等
  • 格式规范公文处理助手:一键排版 标题 / 正文 / 页码一键调,Word 脚本自定义
  • Apache Cloudberry 向量化实践(三)重塑表达式构建路径:Gandiva 优化实战
  • 如何将公式图片转换为公式格式到wps/word里面
  • 【java17】使用 Word 模板导出带替换符、动态表格和二维码的文档
  • AI产品经理面试宝典第1天:机器学习核心算法全景解析
  • WPS、Word加载项开发流程(免费最简版本)
  • R² 决定系数详解:原理 + Python手写实现 + 数学公式 + 与 MSE/MAE 比较
  • 模拟实现unordered_map
  • 《月亮与六便士》:天才的背叛与凡人救赎的残酷辩证法
  • [Dify] -基础入门4-快速创建你的第一个 Chat 应用
  • vscode 中的 mermaid