Java
GUI编程Day01
GUI编程 组件 窗口 弹窗 面板 文本框 列表框 按钮 图片 监听事件 鼠标 键盘事件 外挂 破解工具 简介 GUI的核心技术:Swing AWT 因为界面不美观 运行需要jre环境 MVC的基础,了解MVC架构,了解监听 可以写出自己心中想要的一些小工具 工作时候,也可能需要维护到Swing界面,概率极小 AWT AWT介绍 包含了很多的类和接口 GU
Java 中`finally` 块包含 `return` 语句会覆盖 `try` 或 `catch` 块中的 `return` 语句
在 Java 中,如果 finally 块包含 return 语句,它会覆盖 try 或 catch 块中的 return 语句。这是因为 finally 块中的代码在 try 和 catch 块结束后总是会执行,即使有 return 语句、异常或 System.exit() 这样的终止操作。在 finally 中使用 return 是不推荐的,因为它会让代码难以维护和调试,容易导致意外的行为。
Java反序列化利用链篇 | URLDNS链
URLDNS链 URLDNS链是java通过反序列化发起dns请求的利用链。一般用于测试反序列化漏洞。 该链比较简单,利用链也比较短。 其中入口类为 HashMap,执行类为URLStreamHandler的hashCode()方法。 整个调用链如下: 调用链分析 HashMapde readObject()方法会调用putVal()方法因而调用hash()方法,传递的参数为key,这个key为
Java反序列化利用链篇 | JdbcRowSetImpl利用链分析
JdbcRowSetImpl利用链 前言 首先说明一下:利用链都有自己的使用场景,要根据场景进行选择不同的利用链。 JdbcRowSetImpl利用链用于fastjson反序列化漏洞中。 为什么? 因为fastjson会在反序列化类时自动调用set开头的方法(不一定是setter方法),而JdbcRowSetImpl中存在一个set开头的方法,即setAutoCommit(),该这个方法中调用了c
Java反序列化利用链篇 | CC1链_全网最菜的分析思路【本系列文章的分析重点】
CC1链_全网最菜的分析思路 1 你必须知道的点 1.1 反序列化利用链的起点是readObject()方法 Java的序列化机制允许将对象的状态保存到一个字节流中,之后可以从这个字节流中恢复(或“反序列化”)出对象。这个过程中,ObjectInputStream类负责读取这些字节流,并尝试根据包含的类型信息重新创建对象。为了支持复杂对象和自定义类型,Java提供了自定义反序列化过程的能力,这通常
Eclipse Angus TLS 发送邮件
Eclipse Angus TLS 发送邮件 Augus-mail 是一种邮件发送库,类似于 JavaMail。要通过 Augus-mail 使用 TLS 发送邮件,流程会与 JavaMail 非常类似。以下是使用 Augus-mail 发送带 TLS 的邮件的基本步骤: 步骤 1:设置依赖 首先,你需要确保项目中包含 Augus-mail 的依赖。如果你是通过 Mave
使用LangChain4J实现Agent与Tool调用
一些LLM除了生成文本,还可触发操作。 所有支持tools的LLMs可在此处找到(参见“Tools”栏)。 有一个被称为“工具(tools)”或“函数调用(function calling)”的概念。它允许LLM在必要时调用一或多个由开发者定义的工具。工具可以是任何东西:网页搜索、外部API调用、或执行一段特定代码等。LLM本身无法实际调用这些工具;它们会在响应中表达出调用某个工具的意图(而不
Jakarta Mail TLS 发送邮件
Jakarta Mail TLS 发送邮件 在 Jakarta Mail(以前称为 JavaMail)中使用 TLS 发送邮件的方式类似于使用 JavaMail。TLS(传输层安全协议)用于加密邮件传输,以确保邮件在发送过程中不会被拦截。 以下是如何通过 Jakarta Mail 实现使用 TLS 发送邮件的步骤: 步骤 1:引入 Jaka
深入理解Java的垃圾回收机制(GC)实现原理
深入理解Java的垃圾回收机制(GC)实现原理Java的垃圾回收机制(Garbage Collection, GC)是其内存管理的核心功能之一。通过GC,Java自动管理对象的生命周期,回收不再使用的对象所占的内存空间。本文将详细探讨GC的实现原理、不同算法的细节以及其在JVM中的应用。 1. 垃圾回收的基本原理垃圾回收的主要任务是识别和回收不再使用的对象。GC的基本工作过程包括: 标记阶段:标记
kedro data catalog version 处理简单说明
kedro data catalog 支持version 化,这样可以方便的使用特定时间的多数据,以下是对于version 的简单说明 参考使用 pikachu: type: kedro_pokemon.datasets.image_dataset.ImageDataset filepath: data/01_raw/pokemon-images-and-type
Java反序列化利用链篇 | CC1链的第二种方式-LazyMap版调用链【本系列文章的分析重点】
CC1链的第二种方式-LazyMap版调用链 目录 LazyMap 构造payload CC1的调用链 参考链接 LazyMap 在之前的CC1链中分析,其实是其中一种方式(国内版本),还有另外一种方式,也是ysoserial中的CC1链的方式(国外版本)。 区别在于调用transform的类是不同的。 在寻找transform调用的时候,当时使用的是TransformedMa
InvocationHandler是什么
`InvocationHandler`是Java中的一个接口,用于处理通过代理对象的方法调用。它主要应用于动态代理机制,允许在运行时动态地创建代理类和其实例。`InvocationHandler`的主要作用包括: 1. **拦截方法调用**:当代理对象的方法被调用时,`InvocationHandler`的`invoke`方法会被触发。这使得你可以在方法调用前后添加自定义逻辑,例如日志记录、权限检
FactoryBean有什么用
`FactoryBean`是Spring框架中的一个特殊接口,用于创建和配置复杂的Bean。与普通的Bean定义不同,使用`FactoryBean`可以提供更灵活和复杂的实例化和配置逻辑。以下是`FactoryBean`的一些主要用途和优点: 1. **定制实例化逻辑**:`FactoryBean`允许你定制Bean的创建过程,这在创建复杂对象时非常有用。例如,你可能需要从某个外部系统加载配置信息
42. 接雨水(leetcode)
https://leetcode.cn/problems/trapping-rain-water/description/大厂经典题,接雨水暴力双指针->预处理优化->单调栈 暴力: class Solution { public int trap(int[] height) { // 暴力解法: // 枚举每一个柱子为底,双指针寻找左右最高的柱
Java反序列化利用链篇 | CC3链分析、TemplatesImpl类中的调用链、TrAXFilter、InstantiateTransformer类的transform()【本系列文章的分析重点】
CC3链分析 1. CC3链背景 前面介绍了CC1和CC6,这两条链子虽然前面的入口类不同 CC1入口类是AnnotationInvocationHandler CC6入口类是HashMap 但是其触发恶意代码的方式是相同的,都是InvokerTransformer.transform()触发Runtime.getRuntime().exec()实现命令执行。 而在很多情况下,Runtime
Java反序列化利用链篇 | CC6链分析(通用版CC链)
CC6 CC6和CC1之间的区别 在CC1的LazyMap链中,调用链如下: 而在CC1链中,对CommonsCollections和jdk版本是有限制的。 而CC6链不受版本影响,更具通用性。 其调用链为: 其和CC1的不同点在于,入口类不同,通过 调用了LazyMap的get()方法。 CC6的调用链 HashMap.readObject()方法调用了HashMap.hash()方法
Java代码审计篇 - ofcms系统审计思路讲解 - 篇3 - 文件上传漏洞审计
Java代码审计篇 | ofcms系统审计思路讲解 - 篇3 | 文件上传漏洞审计 1 文件上传代码审计【有1处】 文件上传漏洞我们需要着重关注的是文件在被java代码解析到保存下来之间有无验证过滤,因此什么样的上传方式,什么样的保存方式都不重要,大家着重关注代码对文件的验证过滤手段即可。 文件上传代码审计常搜索的关键字如下: 1.1 可疑点1【无漏洞】 1.1.1 直接搜索upload关键字
Java代码审计篇 - ofcms系统审计思路讲解 - 篇4 - XXE漏洞审计
Java代码审计篇 | ofcms系统审计思路讲解 - 篇4 | XXE漏洞审计 1. XXE代码审计【有1处】 XXE代码审计常搜索的关键字如下: 还有一个特殊的,用于加载.jrxml 文件,这是 JasperReports 特定的 XML 格式,用于定义报告模板。 1.1. 搜索JRXmlLoader 当然这样搜比较慢,而且有很多重复的,这里有个小技巧,可以搜到JRXmlLoader之后
Java代码审计篇 - ofcms系统审计思路讲解 - 篇1 - 环境搭建、路由机制
Java代码审计篇 | ofcms系统审计思路讲解 - 篇1 | 环境搭建、路由机制 目录 1. 前言 2. 项目环境搭建 3. 项目路由机制 3.1. 1)先搜索pom.xml文件,看看使用了什么框架 3.2. 2)确定是否是spring的路由机制 3.3. 3)确定自写路由机制的特点 3.4. 4)从前端探索 3.5. 5)断点调试 3.6. 6)寻找路径后
Java代码审计篇 - ofcms系统审计思路讲解 - 篇2 - SQL注入漏洞审计
Java代码审计篇 | ofcms系统审计思路讲解 - 篇2 | SQL注入漏洞审计 1. 前言 我发现很多文章包括教程,大概套路是:只说有漏洞的点,将有漏洞的点指出,然后分析代码;或者黑盒测试出漏洞之后,然后分析代码。 我认为这是在分析漏洞代码,而非代码审计。代码审计文章或教程应该是从0开始找到漏洞所在,包括思路! 所以这里不管有没有漏洞,我都会把审计过程写出来,因此篇幅会很长,但我认为这样对你
设计模式之——装饰者模式
前言: 装饰者模式是结构性设计模式之一,其在不必改变类文件及不适用继承的情况下,动态的扩展一个对象的功能。它通过创建一个包装对象(即装饰)来包裹真实的对象。 一.定义 动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。 装饰者模式的结构图: 装饰者模式有如下角色: Component:可以是接口或者是抽象类,被装饰的最原始的对象。 ConcreteComponen
Day 20 回溯法part02| LeetCode 39. 组合总和 ,40.组合总和II,131.分割回文串
39. 组合总和 39. 组合总和 剪枝 40.组合总和II 40. 组合总和 II 131.分割回文串 131. 分割回文串