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

目录

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.mzph.cn/news/753732.shtml

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

相关文章

数据库事务中“锁”的分类

数据库事务中的锁可以按照不同的维度进行分类。以下是一些常见的分类方式: 1、按锁的粒度分类: 行锁(Row-level lock):锁定单个或少量的数据行。这种锁粒度小,允许高度的并发,但管理开销大。页…

LeetCode 2312.卖木头块:动态规划(DP)

【LetMeFly】2312.卖木头块:动态规划(DP) 力扣题目链接:https://leetcode.cn/problems/selling-pieces-of-wood/ 给你两个整数 m 和 n ,分别表示一块矩形木块的高和宽。同时给你一个二维整数数组 prices ,其中 prices[i] [hi, …

【蓝桥杯】蓝桥杯嵌入式——题目总结及文章汇总(内含客观题与主观题,并且都附有详细题解)

介绍 蓝桥杯嵌入式比赛是一项专注于嵌入式开发的全国性比赛,旨在鼓励和促进嵌入式系统的研究和应用,提高嵌入式开发的水平和技能。 比赛分为初赛和复赛两个阶段。初赛难度适中,注重考查参赛选手的嵌入式系统开发能力和实践经验。复赛则采用线…

LeetCode118 杨辉三角形

题目 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2: 输入: numRows 1 输出: [[1]] 解…

汽车电子拓扑架构的演进过程

汽车电子拓扑架构的演进过程 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师 (Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,喝完再挣扎,出门靠…

TestNg @Test的expectedExceptionsMessageRegExp属性

本文将讨论TestNG中Test 注解的expectedExceptionsMessageRegExp属性。 这个属性有什么作用?根据文档: 如果指定了expectedExceptions ,则其消息必须与此属性中指定的正则表达式匹配。 因此,这意味着如果不先使用expectedparam…

爬虫加密算法

js常见的加密方式 加密在前端开发和爬虫中是经常遇见的。掌握了加密算法且可以将加密的密文进行解密破解的,也是你从一个编程小白到大神级别质的一个飞跃。且加密算法的熟练和剖析也是很有助于帮助我们实现高效的js逆向。下述只把我们常用的加密方法进行总结。不去深…

若依ruoyi-vue中的的DTO、VO、BO、PO、DO、POJO

POJO POJO的定义是无规则简单的对象,在日常的代码分层中pojo会被分为VO、BO、 PO、 DTO VO (view object/value object)表示层对象 1、前端展示的数据,在接口数据返回给前端的时候需要转成VO 2、个人理解使用场景,接…

Python 常用的开源爬虫库介绍

Python 是一种广泛使用的编程语言,特别是在 Web 爬虫领域。有许多优秀的开源爬虫库可以帮助开发者高效地抓取网页内容。以下是几个常用的 Python 爬虫库及其特点和优势: BeautifulSoup 特点 - **HTML/XML 解析**:BeautifulSoup 是一个…

linux(Ubuntu22) 一篇带你学会Linux,详细篇

Linux 简介 精通Linux,自带python,系统开源 电脑可安装双系统 c盘安装win D盘安装linux 在一套硬件上只能同时运行一个操作系统 虚拟机 模拟真实环境 在虚拟机内运行操作系统 需要硬件支持虚拟化 开启VT-X VM…

opengl程序错误,无法定位程序输入点 glewGetErrorString@4 于动态链接库

使用mingw编译器编译运行opengl程序,编译通过运行时崩溃 怀疑是之前的mingw版本编译的glew库版本不对,又重新编译一遍,还是这个错误 之后检查环境变量配置,发现有两个glew的路径,一个是msvc版的,另一个是m…

JavaScript 语法-对象

对象 JavaScript 中的对象是一组键值对的集合,其中每个键都是字符串,每个值可以是任意类型。 对象是由一些属性和方法组成的集合,属性可以用来存储数据,方法可以用来操作数据。 属性和方法使用“.”来访问 // 创建一个对象 let …

教你把公司吃干抹净、榨干带走

大家好: 衷心希望各位点赞。 您的问题请留在评论区,我会及时回答 正文 打工人一定要做到够自私,把公司的一切为我所用,你要知道闷头打工是没有出路的。聪明的人会以最快的速度榨干带走公司的一切资源、人脉、技能,为…

五种主流数据库:数据汇总

汇总分析是数据报表中的基本功能,例如产品销售金额的汇总、学生的平均身高和标准差统计等。SQL 定义了聚合函数,可以实现数据的汇总分析。 本文比较五种主流数据库支持的常见聚合函数,包括 MySQL、Oracle、SQL Server、PostgreSQL 以及 SQLi…

【C++PCL】点云处理RANSAC配准

目录 1.原理介绍 2.代码效果 3.源码展示 4.参数调试 5.注意事项

Unity WebGL服务器标头的问题

目录 现象: 报错文本: 原因: 解决方案: 现象: 打包前,ProjectSetting 压缩选项设置为Brotli, 将打包的WebGL部署到阿里云OSS环境后,运行弹框提示错误. 报错文本: Unable to parse Build/WebGL.framework.js.br! This canha…

二、Jooq整合SpringBoot

在当前微服务盛行的情况下,Spring Boot 或 Spring Cloud 为基础的微服务体系是主流, 也是目前业务场景中新的选型方向 数据库表 -- filesystem.user definitionCREATE TABLE user (id int(11) NOT NULL AUTO_INCREMENT,username varchar(50) NOT NULL,…

三级等保技术建议书

1信息系统详细设计方案 1.1安全建设需求分析 1.1.1网络结构安全 1.1.2边界安全风险与需求分析 1.1.3运维风险需求分析 1.1.4关键服务器管理风险分析 1.1.5关键服务器用户操作管理风险分析 1.1.6数据库敏感数据运维风险分析 1.1.7“人机”运维操作行为风险综合分析 1.2…

QT----基于QT的人脸考勤系统

目录 1 编译opencv库1.1 下载源代码1.2 qt编译opencv1.3 执行Cmake一直卡着data: Download: face_landmark_model.dat 2 编译SeetaFace2代码2.1 遇到报错By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has2.2遇到报错Model missing 3 测试…

洛谷 保龄球

保龄球 题目描述 DL 算缘分算得很烦闷,所以常常到体育馆去打保龄球解闷。因为他保龄球已经打了几十年了,所以技术上不成问题,于是他就想玩点新花招。 DL 的视力真的很不错,竟然能够数清楚在他前方十米左右每个位置的瓶子的数量…