随笔分类 -  Java

Java基础+进阶知识总结
摘要:JNDI 高版本JDK 限制绕过 JNDI注入的限制以及绕过方式 RMI 方式实现的JNDI大体分为以下步骤: 客户端通过RMI方式获取 ReferenceWarpper_Stub ,通过远程调用 getReference 获取 Reference 对象。 客户端通过 Reference 获取 Ob 阅读全文
posted @ 2022-04-03 22:45 NIShoushun 阅读(254) 评论(0) 推荐(0) 编辑
摘要:log4j2 JNDI注入原理 log4j2中的JNDI注入 log4j在 2.0 - 2.14.1版本中,存在jndi注入问题。 配置 首先使用maven导入log4j包并通过log4j2.xml进行日志服务配置。 导入maven pom.xml 配置如下(如果是spring、myba 阅读全文
posted @ 2022-03-30 12:58 NIShoushun 阅读(903) 评论(0) 推荐(0) 编辑
摘要:RMI RMI 协议的全称为 Remote Method Invocation (远程方法调用)协议。 RMI 应用程序通常包含两个独立的程序,一个服务器和一个客户端。典型的服务器程序会创建一些远程对象,使对这些对象的引用可访问,并等待客户端调用这些对象上的方法。典型的客户端程序获取对服务器上一个或 阅读全文
posted @ 2022-03-30 01:04 NIShoushun 阅读(360) 评论(0) 推荐(0) 编辑
摘要:FastJSON checkAutoType 绕过 本文章全程参考:Fastjson 反序列化历史漏洞分析 并做了一点补充。 在maven仓库中,FastJSON vulnerability 只被标注到 1.2.24 版本,也即是不对类型进行检查的最后一个版本。但本身还是能够找到很多可以被利 阅读全文
posted @ 2022-03-30 00:42 NIShoushun 阅读(844) 评论(0) 推荐(0) 编辑
摘要:JNDI With RMI JNDI with RMI JNDI即Java Naming and Directory Interface(JAVA命名和目录接口),jndi类似于一个索引中心,允许客户端通过name发现和查找数据和对象,并将这些对象加载到本地并运行。 JNDI本事只是一种接口,具体的 阅读全文
posted @ 2022-03-25 16:03 NIShoushun 阅读(359) 评论(0) 推荐(0) 编辑
摘要:Spring-AOP的简单使用 1. Spring-AOP 1.1 AOP概念 (1)概念 Aspect Oriented Program(面向切面编程) AOP思想:将功能实现的特定核心方法与其前后执行的一套通用的程序执行流程模板分离开来,实现核心业务的开发与相应的前置处理与结果处理的后置业务的开 阅读全文
posted @ 2020-06-09 15:17 NIShoushun 阅读(341) 评论(0) 推荐(0) 编辑
摘要:MySQL基础知识总结 1. MySQL使用前提 1.1 安装以及开启服务 1.1.1 docker安装MySQL (1)使用docker安装 拉取mysql docker pull mysql:5.7.30 启动镜像,配置挂载卷: docker run -d -p 3306:3306 --name 阅读全文
posted @ 2020-05-18 19:26 NIShoushun 阅读(231) 评论(0) 推荐(0) 编辑
摘要:Java IO流部分源码解析 前言,很多东西实际上是自己闲着没事去看看底层是怎么实现的,很多地方可能讲的并不是很详细或者会出现错误,还是要相信自己的判断(๑╹ヮ╹๑)ノ Studying makes me happy [toc] 1. Java IO流源码 1.1字节流 1.1.1 InputStr 阅读全文
posted @ 2020-04-28 21:16 NIShoushun 阅读(404) 评论(0) 推荐(0) 编辑
摘要:Commons Collections 利用链 CC链的利用实际上就是 Commons Collections 中的装饰器类,其中会包含 Transformer ;在其它类使用某些包装类的方法时,包含的 transformer 会对其进行了一次转换 。而这个 Transformer 中的一些实现使用 阅读全文
posted @ 2020-04-17 23:40 NIShoushun 阅读(523) 评论(0) 推荐(0) 编辑
摘要:HashMap HashMap HashMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫做Entry,有着key与value两个基本属性以及有其他的包含其他结点位置信息的属性 通过HashMap我们可以存储键值对,并且可以在较短的时间复杂度内查询键值对,理论上最好为O(1),但是 阅读全文
posted @ 2020-04-12 17:55 NIShoushun 阅读(319) 评论(1) 推荐(0) 编辑
摘要:Fast JSON 反序列化安全漏洞 FastJSON 反序列化安全问题 fastjson 在序列化时,可采用 Feature.WirteClassName 来额外生成一个键值对: "@type":"ClassName"; 当 fastjson 在反序列化时,在版本 1.27 之前,会自动读 阅读全文
posted @ 2020-04-06 20:50 NIShoushun 阅读(822) 评论(0) 推荐(0) 编辑
摘要:面向对象 泛型 [toc] 1. 泛型 1.1 泛型介绍 1.1.1 泛型本质 (1)本质 泛型本质是参数化类型,即指明使用的数据是什么类型 (2)参数化类型 参数化类型是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具 阅读全文
posted @ 2020-04-06 00:31 NIShoushun 阅读(140) 评论(0) 推荐(0) 编辑
摘要:Java8 Lambda [toc] 1. Lambda表达式 1.1 Lambda表达式介绍 1.1.1 lambda表达式作用 lambda表达式是Java8的一个新特性,当我们在需要使用实现了某些接口的实例时,即便是该实例只在某一处使用,我们也得为它新建一个实现类(最起码也得使用匿名类来创建该 阅读全文
posted @ 2020-04-04 12:32 NIShoushun 阅读(331) 评论(0) 推荐(0) 编辑
摘要:排序算法 [toc] 1. 排序算法概述 1.1 什么是排序算法? 对一序列对象根据某个关键字,按照某种规则进行排序 1.2 排序术语 稳定 :如果a原本在b前面,而a=b,排序之后a仍然在b的前面 不稳定 :如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面 内排序 :所有排序操作都在 阅读全文
posted @ 2020-03-30 19:02 NIShoushun 阅读(221) 评论(0) 推荐(0) 编辑
摘要:URLDNS URLDNS URLDNS 利用链是通过 HashMap<java.net.URL, Object> 反序列化时,会重新调用 URL 对象的 hashCode 方法,而该方法可能会发起一个 DNS 请求。 调用链: HashMap->readObject() HashMap->hash 阅读全文
posted @ 2020-03-29 16:33 NIShoushun 阅读(712) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示