Day68:WEB攻防-Java安全原生反序列化SpringBoot攻防heapdump提取CVE

news2024/9/21 0:30:12

目录

Java安全-反序列化-原生序列化类函数

原生序列化类函数

SnakeYaml

XMLDecoder

ObjectInputStream.readObject

工具利用

ysoserial

Yakit

SerializedPayloadGenerator

Java安全-SpringBoot框架-泄漏&CVE

SpringBoot Actuator-黑白盒发现

人工识别

BurpSuite插件

pox.xml & 引用库

泄露安全(内部路由泄露)

漏洞安全(CVE,利用类)

CMS源码审计

Spring boot框架思路


知识点:

1、Java安全-原生反序列化-3大类接口函数&利用

2、Java安全-SpringBoot攻防-泄漏安全&CVE安全

Java安全-反序列化-原生序列化类函数

序列化是将Java对象转换成字节流的过程。而反序列化是将字节流转换成Java对象的过程

序列化数据特征:java序列化的数据一般会以标记(ac ed 00 05)开头,base64编码的特征为rO0AB

JAVA常见的序列化和反序列化的方法:JAVA 原生序列化和JSON 类(fastjson、jackson)序列化等。两种方式做的事情都是一样的,为什么要区分开来?

因为利用起来有所不同
fastjson、jackson等反序列化就用网上给的EXP、POC去测试
java原生类反序列化就会用到专门工具(ysoserial)去生成payload去测试

黑盒发现(流量捕获到特征ac ed 00 05、rO0AB

白盒发现(特征类接口函数)

原生序列化类函数

1、原生序列化类函数:
-SnakeYaml:完整的YAML1.1规范Processor,支持Java对象的序列化/反序列化
-XMLDecoder:xml语言格式序列化类函数接口
-ObjectInputStream.readObject():任何类如果想要序列化必须实现java.io.Serializable接口

SnakeYaml

完整的YAML1.1规范Processor,支持Java对象的序列化/反序列化

需要注意下jndi注入版本问题

XMLDecoder

xml语言格式序列化类函数接口

ObjectInputStream.readObject

任何类如果想要序列化必须实现  java.io.Serializable接口

工具利用

Yakit
https://yaklang.com/ //集成了ysoserial工具,图形化生成,推荐使用

ysoserial
https://github.com/frohoff/ysoserial //命令生成工具,不推荐使用

SerializedPayloadGenerator
https://github.com/NotSoSecure/SerializedPayloadGenerator //集成了ysoserial工具,网页图形化,推荐使用

ysoserial

该项目有个好处就是能看到一些利用链对应的具体版本

Yakit

假如不知道对方能用什么利用链生成payload,可以利用万能利用链(URLDNS)进行POC测试

SerializedPayloadGenerator

该工具项目搭建地址参考:https://blog.csdn.net/m0_60571842/article/details/134454939

Java安全-SpringBoot框架-泄漏&CVE

检测清单:https://github.com/LandGrey/SpringBootVulExploit

SpringBoot Actuator-黑白盒发现

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

人工识别

特征:

  • 网站图片文件是一个绿色的树叶。
  • 特有的报错信息。
  • Whitelabel Error Page关键字

BurpSuite插件

项目地址:https://github.com/API-Security/APIKit

打开BurpSuite页面,点击Extender然后选择Extensions,添加APIKit.jar

安装好插件后啥都不用管,让数据包经过BP即可触发插件被动扫描

pox.xml & 引用库

配置文件Actuator设置全部暴露

management.endpoints.web.exposure.include=*

泄露安全(内部路由泄露)

项目地址:https://github.com/AabyssZG/SpringBoot-Scan

heapdump敏感信息查询工具(配置密码,AK/SK等)

项目地址:https://github.com/whwlsfb/JDumpSpider

该工具不支持自定义关键字

项目地址:https://github.com/wyzxxz/heapdump_tool

支持关键字搜索

漏洞安全(CVE,利用类)

针对框架CVE漏洞:https://github.com/AabyssZG/SpringBoot-Scan

利用类漏洞来进行RCE攻击:https://github.com/0x727/SpringBootExploit

服务器上执行JNDIExploit工具(可以本地、也可以远程VPS上运行)

CMS源码审计

运行SQL文件

从pom.xml看有没有调用Actuator库

配置文件中Actuator设置是否为*(全部暴露) management.endpoints.web.exposure.include=*

漏洞检测 

泄露安全(heapdump)

使用heapdump敏感信息查询工具提取敏感信息
JDumpSpider

Spring boot框架思路

从两个方面去寻找安全问题:

  • 泄露安全(是否泄露了内部路由及heapdump)
  • 漏洞安全(利用相关框架漏洞检测工具测试是否存在漏洞)

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

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

相关文章

阿里云ecs服务器配置反向代理上传图片

本文所有软件地址: 链接:https://pan.baidu.com/s/12OSFilS-HNsHeXTOM47iaA 提取码:dqph 为什么要使用阿里云服务器? 项目想让别人通过外网进行访问就需要部署到我们的服务器当中 1.国内知名的服务器介绍 国内比较知名的一些…

语音识别:whisper部署服务器,可远程访问,实时语音转文字(全部代码和详细部署步骤)

Whisper是OpenAI于2022年发布的一个开源深度学习模型,专门用于语音识别任务。它能够将音频转换成文字,支持多种语言的识别,包括但不限于英语、中文、西班牙语等。Whisper模型的特点是它在多种不同的音频条件下(如不同的背景噪声水…

Linux下安装多个nodejs并映射Jenkins

背景 需要Jenkins中切换多个Node,比如nodejs16和nodesjs18,所以在宿主机按照好这两个版本,然后再映射到Jenkins容器中 步骤 1.下载地址 https://nodejs.org/dist/ 放到 cd /opt/soft/2.解压 tar -xzvf node-v16.20.0-linux-x64.tar.gz tar -xzvf n…

spring 没完没了

start 轻量级开源的j2ee框架,容器框架 装javabean aop ioc 定义一个starter的jar包,写一个configuration配置类,将bean定义其中,在starter包的meta-inf/spring.factories中写入配置类,springboot会按约定加载该配置类 …

蓝桥杯-体育健将-CPP-贪心

目录 一、题目描述: 二、整体思路: 三、代码: 一、题目描述: 二、整体思路: 要在k分钟内拿最多的金牌,就意味着要参加尽可能多的项目,因此就要选择耗时(比赛时间和休息时间)最少的项目先预处…

QT6实现创建与操作sqlite数据库(一)

一.Qt为SQL数据库提供支持的基本模块(Qt SQL) Qt SQL的API分为不同层: 驱动层 SQL API层 用户接口层 1.驱动层 对于Qt 是基于C来实现的框架,该层主要包括QSqlDriver,QSqlDriverCreator,QSqlDriverCreatorBase,QSqlPlug…

笔记本固态硬盘损坏数据恢复两种方法 笔记本固态硬盘损坏如何恢复

大家好!今天要跟大家分享的是笔记本固态硬盘损坏数据恢复的两种方法。相信很多小伙伴都遇到过这种情况,电脑突然蓝屏或者死机,再开机后发现自己的数据不见了,这时候该怎么办呢?这可真是让人头疼。毕竟,我们的数据都在里面呢!别着急,我来给大家支招!今天就来给大家介绍…

Linux初识环境变量

🌎环境变量【上】 文章目录: 环境变量 什么是环境变量 关于命令行参数 环境变量       简单了解       为什么需要环境变量       系统中其他环境变量 总结 前言: 环境变量是一种非常重要的概念,它们对于系统的…

鸿蒙Harmony应用开发—ArkTS声明式开发(绘制组件:Path)

路径绘制组件,根据绘制路径生成封闭的自定义形状。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 无 接口 Path(value?: { width?: number | string; height?: number |…

OpenResty使用Lua大全(九)实战:nginx-lua-redis实现访问频率控制

文章目录 系列文章索引一、需求背景二、设计方案1、预期结果2、nginx.conf配置3、access_by_limit_frequency.lua4、测试 系列文章索引 OpenResty使用Lua大全(一)Lua语法入门实战 OpenResty使用Lua大全(二)在OpenResty中使用Lua …

Django 反向解析路由

app2.urls.py from django.urls import path, re_path from . import viewsurlpatterns [path(index, views.index, nameindex),path(url_reverse, views.url_reverse, nameapp2_url_reverse), # 使用reverse()方法反向解析 ,name对于视图的reverse("app2_url_reverse&…

鼎阳SDS6204示波器EPICS IOC的搭建

三年前曾写过这个文: 鼎阳SDS6204示波器的EPICS IOC调试 文章里有EPICS网站设备IOC搭建的指南,具体搭建IOC的步骤就没详细写了,几年后重新搭建时发现还是费了些力气才搭建起来,因此写此文记录下手把手的过程方便自己以及EPICS的初…

阿里云云服务器ECS端口多个端口号开通教程

阿里云云服务器ECS端口多个端口号开通教程 1、登录到ECS云服务器管理控制台 2、左侧栏找到【实例与镜像】>>【实例】,找到目标ECS实例,点击实例ID进入到实例详情页 3、切换到【安全组】页面,点击右侧【配置规则】,如下图&…

Mysql与MyBatis

1 Sql语句 增删改查 1.1 建表 -- cmd展示数据库 show databases ; -- cmd登录数据库 mysql localhost -u root -p-- auto_increment 自动增长,每添加一个表项id自动增1 -- char定长字符串 0-255,不足十个字符按十个字符算, varchar变长字符串…

[LLM]大语言模型文本生成—解码策略(Top-k Top-p Temperature)

{"top_k": 5,"temperature": 0.8,"num_beams": 1,"top_p": 0.75,"repetition_penalty": 1.5,"max_tokens": 30000,"message": [{"content": "你好","role": "user&…

【深度学习】手动实现全连接神经网络(FCNN)

🌻个人主页:相洋同学 🥇学习在于行动、总结和坚持,共勉! 神经网络的本质就是通过参数、线性函数与激活函数来拟合特征与目标之间的真实函数关系。 01 神经网络简介 1.1 引入 神经网络是一门重要的机器学习技术&…

hosts文件丢失了怎么办?

hosts文件的位置:C:\Windows\System32\drivers\etc 丢失了恢复的方法: 在“管理员:命令提示符中输入: (winR 然后cmd) for /f %P in (dir %windir%\WinSxS\hosts /b /s) do copy %P %windir%\System32\d…

SAP前台处理:物料主数据创建<MM01>之采购视图

一、背景: 终于来到了物料主数据,我觉得物料账是SAP最重要的一项发明,也一直是SAP的一项重要优势,物料账记录了一个个物料的生生不息; 本章主要讲解物料主数据和财务相关的主要内容:这里特别提示由于作者…