Actuator内存泄露及利用Swagger未授权自动化测试实现

目录

0x00 前言

0x01 Actuator 泄露及利用

1、Actuator heapdump 内存泄露

2、知道泄露后如何进一步利用

3、如何发现 Actuator 泄露(白盒/黑盒)

0x02 Swagger自动化测试

1、什么是Swagger?

2、Postman+BurpSuite+Xray 联动

3、思考


0x00 前言

希望和各位大佬一起学习,如果文章内容有错请多多指正,谢谢! 

个人博客链接:CH4SER的个人BLOG – Welcome To Ch4ser's Blog

0x01 Actuator 泄露及利用

1、Actuator heapdump 内存泄露

SpringBoot Actuator模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP跟踪等,帮助我们监控和管理Spring Boot应用。

JavaSec 靶场介绍:本项目使用JAVA "1.8.0_112" 基于Spring boot + layuimini 进行开发实现

点击访问后可以看到 Actuator 页面:

Actuator 页面是一个用于监控和管理 Spring Boot 应用程序的页面。它提供了一系列的端点(endpoints),这些端点可以用于获取应用程序的健康状况、性能指标、运行时信息等。

通过访问 Actuator 页面,可以方便地查看应用程序的运行状态和性能情况,从而帮助开发者监控和调试应用程序。Actuator 页面可以通过浏览器访问,一般默认路径是 “/actuator”。

接着访问 env 端点,看到了环境变量配置信息,如数据库密码,但是显示为 * 号,这时就要下载 heapdump 文件分析:

env 是一个用于查看应用程序的环境变量的端点(Endpoint),通过访问/actuator/env端点,可以获取应用程序当前运行环境的所有环境变量信息。

在开发和调试过程中,查看env端点可以帮助开发人员了解应用程序运行时的环境变量配置情况,方便进行问题排查和调优。

但是如果因为配置不当将 env 端点暴露,可能会造成敏感信息泄露的问题。

访问 heapdump 端点,下载 heapdump 文件并使用工具分析:

heapdump 是一个用于生成Java堆转储文件的端点(Endpoint),通过访问/actuator/heapdump端点,可以下载当前Java应用程序的堆转储文件。

通俗的讲,heapdump 文件就是当前项目的内存文件,通过特定工具分析能够造成内存泄露的问题。

使用工具 heapdump_tool.jar 分析如下:

java -jar .\heapdump_tool.jar .\heapdump

推荐选择模式 1,也就是全局模式,然后输入要找的关键字(有提示的模板,比如 password、shirokey 等),这里分析出了我的数据库连接密码。

用其他工具也行,比如 JDumpSpider-1.1-SNAPSHOT-full.jar,这款工具是直接将分析结果全部呈现出来,但是听说有些分析不出来

java -jar .\JDumpSpider-1.1-SNAPSHOT-full.jar .\heapdump

2、知道泄露后如何进一步利用

工具 SpringBootExploit-1.3-SNAPSHOT-all.jar:该工具首先检测有无 heapdump 泄露,然后根据泄露的信息(如项目所加载的类)判断有无其他漏洞(JNDI 注入导致的 RCE)利用的可能

如下,点击检测环境后,日志显示存在 jolokia logback JNDI RCE 漏洞

既然是 JNDI 注入,那么我们就要配置服务器地址(也就是远程恶意类存放的地址),这里用配套的工具:JNDIExploit-1.3-SNAPSHOT.jar,具体使用如下:

java -jar .\JNDIExploit-1.3-SNAPSHOT.jar -i 127.0.0.1 -l 1389 -p 3456
-i:服务器绑定的IP地址
-l:LDAP监听端口
-p:HTTP监听端口

然后回到工具 SpringBootExploit-1.3-SNAPSHOT-all.jar 这边,点击连接看能否连上,看到连接成功

选择 jolokia logback JNDI RCE 利用链并检测,日志显示漏洞利用失败,按理来说应该显示植入冰蝎内存马成功,怀疑是 JDK 版本问题,但是换了 8u112 也不行。

但是很奇怪的是工具 JNDIExploit-1.3-SNAPSHOT.jar 这边显示成功植入了内存马

最后尝试将 PhpStudy 的 WAMP 全部开启成功植入(错误原因之前我只开启了 MySQL)

使用冰蝎 4.0 连接成功(冰蝎 3.0 不行),jolokia logback JNDI RCE 复现完毕。

3、如何发现 Actuator 泄露(盒/黑盒)

对于白盒审计有无 Actuator 泄露:(以下两个条件都要成立)

  • 看 pom.xml 或 External Libraries 里有没有用到 Actuator 组件

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

  • 看 application.properties 里有没有设置全部暴露 Actuator

management.endpoints.web.exposure.include=*

对于黑盒发现 Actuator 泄露:

首先要找到 SpringBoot 框架的网站,可以通过 Fofa 语法:body="Whitelabel Error Page" && icon_hash="116323821",即根据报错页面和图标 hash匹配

然后使用 BurpSuite 插件 APIKit 测试有无 Actuator 泄露:该插件支持多种 API 接口的指纹识别,其中就包括 Actuator,并且所有 BurpSuite 的流量都会经过该插件

首先将 APIKit.jar 导入到 BurpSuite:

然后开启 BurpSuite 代理,鼠标点点点就行了,流量会自动经过 APIKit,可以看到已经检测到了 Atuator 泄露

0x02 Swagger自动化测试

1、什么是Swagger?

Swagger是一个用于生成、描述和调用 RESTful 接口的 Web 服务,Swagger 能将项目中所有设置暴露的接口展现在页面上。简而言之,Swagger就是一个方便开发人员进行接口开发和测试的工具。

基于安全的角度,可以利用 Swagger 针对接口进行漏洞测试,但接口数量往往是很多的,所以我们一般会采用自动化接口漏洞安全测试。

2、Postman+BurpSuite+Xray 联动

首先进入靶场(炼石计划 RefiningStone)的 Swagger 页面 swagger-ui.html,观察到有许多接口的测试点,而对于自动化联动测试更重要的是图中标红的 API 文档地址,等会需要填到 Postman 里

接着打开 Postman,粘贴 API 文档的链接地址,然后 Continue - Import 即可导入

按照图示操作 Run 就行了,建议勾选上 Save Responses 保存响应

Run 之后可能会报错,大概率是上个界面的 Variables 变量设置有问题,多了两个 // 号,去掉然后保存重新 Run 即可

Postman 自动化测试结果如下,但很奇怪的是返回码竟然都是 200,按理来说 Postman 是没有登录状态的,应该有很多 500 才对

现在考虑把 Postman 的流量转到 BurpSuite 上去,也就是说要在 Postman 里设置走 BurpSuite 代理,我的 BurpSuite 代理默认是本地 8080 端口,所以在 Postman 按照如下设置即可

在 Postman 那边重新 Run 之后,可以看到 BurpSuite - Proxy - HTTP History 里已经接收到了流量

现在考虑再将 BurpSuite 的流量转发到本地某个端口上去(这里我设置的 7777),具体设置是在 Settings - Network - Connections 里,然后让 Xray 监听 7777 端口并漏扫

BurpSuite + Xray 联动参考:Xray+burp联动使用(被动扫描)_xray被动扫描_小小丸子551的博客-CSDN博客

常用操作命令:

1、使用基础爬虫爬取并扫描整个网站
.\xray_windows_amd64.exe webscan --basic-crawler http://wordy/ --html-output proxy.html2、windows xray版单个url检测
.\xray_windows_amd64.exe webscan --url "http://example.com/?a=b"3、使用http代理发起被动扫描
.\xray_windows_amd64.exe webscan --listen 127.0.0.1:7777 --html-output test.html4、指定扫描
.\xray_windows_amd64.exe webscan --plugins cmd_injection,sqldet --url http://test.com
.\xray_windows_amd64.exe webscan --plugins cmd_injection,sqldet --proxy 127.0.0.1:8888

这里肯定是使用被动扫描,命令如下:

.\xray_windows_amd64.exe webscan --listen 127.0.0.1:7777 --html-output test.html

然后重新在 Postman 那边 Run 一下,Xray 就能进行漏扫了,如此一来实现了 Postman+BurpSuite+Xray 的联动

3、思考

观察到 Postman 流量的 User-Agent 带有很明显的 Postman 特征,这明显是不合理的,后期我会把这个坑给填上

FOFA 语法:app="Swagger" && country="CN"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/236344.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaAwtSwing的JFrame的pack()方法,容器适配子组件大小,笔记231220

pack()是extends自Window类的方法 使此窗口的大小适合其子组件的首选大小和布局。如果其中一个尺寸小于上一次调用setMinimumSize方法指定的最小尺寸&#xff0c;则会自动放大窗口的宽度和高度。 如果窗口和/或其所有者还不可显示&#xff0c;则在计算首选大小之前&#xff0…

tf卡数据恢复怎么做?记好这4个步骤!

“为了更好的保存数据&#xff0c;我一直都是用TF卡的。很多重要的文件和数据都保存在里面。但是我最近使用时&#xff0c;发现有部分数据丢失了。不知道该怎么办&#xff0c;有没有朋友可以帮帮我呀&#xff1f;” TF卡是一种闪存存储卡&#xff0c;通常用于手机、平板电脑和其…

[Java 基础] Java Stream

Java Stream 是 Java 8 引入的新特性之一&#xff0c;它提供了一种新的处理数据集合的方式。Stream 可以使我们更加方便地对集合进行处理和操作&#xff0c;同时还能提高代码的简洁性和可读性。 文章目录 什么是 Stream常见用法创建 Stream中间操作终端操作 总结 什么是 Stream…

Linux shell编程学习笔记37:readarray命令和mapfile命令

目录 0 前言1 readarray命令的格式和功能 1.1 命令格式1.2 命令功能1.3 注意事项2 命令应用实例 2.1 从标准输入读取数据时不指定数组名&#xff0c;则数据会保存到MAPFILE数组中2.2 从标准输入读取数据并存储到指定的数组2.3 使用 -O 选项指定起始下标2.4 用-n指定有效行数…

应急响应常用命令

应急响应的基本思路 a. 收集信息&#xff1a;收集告警信息、客户反馈信息、设备主机信息等 b. 判断类型&#xff1a;安全事件类型判断。&#xff08;钓鱼邮件、Webshll、爆破、中毒等&#xff09; c. 控制范围&#xff1a;隔离失陷设备 d. 分析研判&#xff1a;根据收集回来的…

北斗高精度基坑安全监测系统解决方案

目录 1.概述 1.1背景 1.2设计原则 1.3建设内容 2.系统架构 2.1总体架构 2.2拓扑图 2.3云平台 2.3.1概述 2.3.2技术架构 2.3.3平台功能 2.4监测子系统 2.4.1位移监测子系统 2.4.2应力监测子系统 2.4.3环境监测子系统 1.概述 1.1背景 基坑监测是基坑工程施工中的…

一个前端大佬的十年回顾 | 漫画前端的前世今生

作者&#xff1a;京东科技 胡骏 引言 岁月如梭&#xff0c;十载流年 前端技术&#xff0c;蓬勃向前 HTML&#xff0c;CSS&#xff0c;JavaScript 演绎出璀璨夺目的技术画卷 回到十年前&#xff0c;前端技术就像一名戴着厚重眼镜的书呆子&#xff0c;总是小心翼翼&#xff…

prometheus 服务不可用

现象: grafana查看面板无数据&#xff0c; prometheus容器一直重启 prometheus日志报错: callerhead.go:685 levelinfo componenttsdb msg"WAL segment loaded" segment448 maxSegment448 解决&#xff1a; docker stop prometheus rm -rf wal/ docker st…

车载蓝牙物联网解决方案

车载蓝牙物联网解决方案是一种基于蓝牙技术&#xff0c;结合物联网技术的智能车载系统。它利用蓝牙技术将智能手机、智能手表、智能车载设备等连接起来&#xff0c;实现设备之间的无缝通信和数据共享&#xff0c;为驾驶者提供更加便捷、安全和智能的驾驶体验。 车载蓝牙物联网解…

浅谈Java 虚拟机(1)

1 Java技术与Java虚拟机 说起Java&#xff0c;人们首先想到的是Java编程语言&#xff0c;然而事实上&#xff0c;Java是一种技术&#xff0c;它由四方面组成: Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。 Java四个方面的关系 运行期环境代…

react hooks浅谈

一.useEffect useEffect是hooks中的生命周期函数 1.只要页面更新就触发回调&#xff1a; useEffect(() > { // 执行逻辑 }) 2.只运行一次&#xff08;组件挂载和卸载时执行&#xff09;&#xff0c;第二个参数传空数组[]&#xff1a; useEffect(() > { // },[]) 3. 条件…

Flask重定向后无效果前端无跳转无反应问题

在网上搜了一下并没有什么好的解决方案&#xff0c;有的话也只是告诉你如何修改代码&#xff0c;并没有讲明白其中的原理以及导致问题的核心&#xff0c;因此特意去了解了一下HTTP的规范找到了答案 问题说明 问题出现的流程大致都是前端发送Ajax请求给后端&#xff0c;进行一些…

【愚公系列】2023年12月 HarmonyOS教学课程 037-ArkUI事件(焦点事件)

&#x1f3c6; 作者简介&#xff0c;愚公搬代码 &#x1f3c6;《头衔》&#xff1a;华为云特约编辑&#xff0c;华为云云享专家&#xff0c;华为开发者专家&#xff0c;华为产品云测专家&#xff0c;CSDN博客专家&#xff0c;CSDN商业化专家&#xff0c;阿里云专家博主&#xf…

测试理论知识三:测试用例、测试策略

1.测试用例 完全的测试是不可能的&#xff0c;对任何程序的测试必定是不完全的&#xff0c;那么&#xff0c;最显然的测试策略就是努力使测试尽可能完全。 进行测试前&#xff0c;推荐先使用黑盒测试的方法设计测试用例&#xff0c;然后使用白盒测试方法来补充的测试用例。 2…

2023“楚怡杯”湖南省赛“信息安全管理与评估“--内存取证(高职组)

2023“楚怡杯”湖南省“信息安全管理与评估”(高职组)任务书 2023“楚怡杯”湖南省“信息安全管理与评估”(高职组)任务书第一阶段竞赛项目试题第二阶段竞赛项目试题第三部分 内存取证:需要环境私聊博主:2023“楚怡杯”湖南省“信息安全管理与评估”(高职组)任务书 第…

Flink电商实时数仓(三)

DIM层代码流程图 维度层的重点和难点在于实时电商数仓需要的维度信息一般是动态的变化的&#xff0c;并且由于实时数仓一般需要一直运行&#xff0c;无法使用常规的配置文件重启加载方式来修改需要读取的ODS层数据&#xff0c;因此需要通过Flink-cdc实时监控MySql中的维度数据…

相互独立的Gamma分布变量之和的分布

两个变量之和的情况 设随机变量相互独立&#xff0c;并且服从参数为的分布&#xff0c;记作&#xff1b;服从参数为的分布&#xff0c;记作&#xff0c;和的概率密度分别为&#xff1a; 其中 其中 那么随机变量服从参数为的分布&#xff0c;记作。 推广到n个变量之和的情况 …

余弦距离和余弦相似度的区别

余弦相似度&#xff0c;就是计算两个向量间的夹角的余弦值&#xff1a;cosθ &#xff0c;取值范围 [-1,1] 。值越大&#xff0c;相似度越高 余弦距离就是用1减去这个获得的余弦相似度&#xff1a;1-cosθ &#xff0c;取值范围 [0,2] 。值越大&#xff0c;距离越远。 余弦距离…

为什么销售的强刺激政策不管用?

销售人员是联系企业生产与市场的纽带&#xff0c;是一个企业经济效益的直接创造者&#xff0c;他们对企业的贡献举足轻重&#xff0c;对销售人员的激励是否有效关系到整个企业的营销体系稳定与业绩提升。 因此&#xff0c;激励销售人员成为所有老总共同的愿望&#xff0c;甚至…

云原生消息流系统 Apache Pulsar 在腾讯云的大规模生产实践

导语 由 InfoQ 主办的 Qcon 全球软件开发者大会北京站上周已精彩落幕&#xff0c;腾讯云中间件团队的冉小龙参与了《云原生机构设计与音视频技术应用》专题&#xff0c;带来了以《云原生消息流系统 Apache Pulsar 在腾讯云的大规模生产实践》为主题的精彩演讲&#xff0c;在本…