前言最近事情比较多,也没心思静下来好好学点新东西。面试的时候被问到反序列化过程,就回忆起个大概开头结尾的样子真蛮尴尬的,炒个冷饭,回顾一下之前学过的常用反序列化。 ps:如有错误烦请指正,不胜感激。(画图可能哪错了没注意到)Commons-CollectionsCommons-Collections <= 3.2.1CC1通过动态代理类AnnotationInvocationHandle
转载 2024-01-12 13:43:46
747阅读
对于Java程序员来说,null是令人头痛的东西。时常会受到空指针异常(NPE)的骚扰。连Java的发明者都承认这是他的一项巨大失误。那么,有什么办法可以避免在代码中写大量的判空语句呢?有人说可以使用 JDK8提供的 Optional 来避免判空,但在嵌套比较深的对象中,需要不断地判空,用起来还是有些麻烦。本篇博文设计了一种可以链式调用对象成员而无需判空的工具,相比原有的if nul
写在前面Java Commons Collections的利用也被称为cc,是在学习反序列化漏洞必不可少的一个部分。希望能由简到繁来一起了解学习下它的利用。前置知识(序列化/反序列化)java序列化核心也就是:writeObject方法,即序列化类对象。readObject方法,即反序列化类对象。注意:反序列化类对象是不会调用该类构造方法serialVersionUID(根据这个版本号来判断序
转载 2023-08-16 20:30:10
18阅读
渗透学习不安全的反序列化之PHP反序列化 文章目录渗透学习前言*本文只做学习用途,严禁利用本文提到的技术进行非法攻击,否则后果自负,本人不承担任何责任。*一、CTF例题二、PHP反序列化漏洞和XSS跨站脚本总结 前言本系列用于记录本人渗透学习的过程,主要内容围绕Owasp TOP 10展开。接上篇不安全的反序列化之反序列化基础用简单案例接触了PHP反序列化,但对该漏洞的利用和实际场景浅尝辄止 。这
Commons Collections:Java中有一个Collections包,内部封装了许多方法用来对集合进行处理,CommonsCollections则是对Collections进行了补充,完善了更多对集合处理的方法,大大提高了性能。
原创 精选 2024-01-20 15:06:41
588阅读
返序列化用到的类分析 ChainedTransformer public ChainedTransformer(Transformer[] transformers) { super(); iTransformers = transformers; } public Object transform ...
转载 2021-10-25 09:01:00
72阅读
2评论
返序列化用到的类分析 ChainedTransformer public ChainedTransformer(Transformer[] transformers) { super(); iTransformers = transformers; } public Object transform ...
转载 2021-10-25 09:01:00
182阅读
2评论
一、反序列化安全问题的产生序列化及反序列化的场景在程序开发中经常会用到,比如通过浏览器上传文件到应用,如果JAVA应用对用户输入,即不可信数据做了反序列化处理,那么攻击者可以通过构造恶意数据输入,让反序列化产生非预期的对象,非预期的对象在产生过程中就有可能带来任意代码执行。因此我们首先需要构造恶意数据,常用的工具是Ysoserial,下载链接:​​https://github.com/frohof
原创 精选 2022-05-29 10:02:29
996阅读
2点赞
1评论
java中本地命令执行常常用到反射+Runtime类Class rtClass = Class.forName("java.lang.Runtime"); Object rt = rtClass.getMethod("getRuntime").invoke(rtClass); rtClass.getMethod("exec",String.class).invoke
本文讲解了Java安全中如何使用LazyMap类来构造cc1,详细易懂,小白首选
原创 2024-02-12 13:31:01
69阅读
00x1环境搭建 --jdk 1.8--用maven在pom文件中添加cc库依赖添加上下面:<dependencies> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-c
转载 2023-07-06 15:35:23
16阅读
CC1和CC6中,我们最终弹计算器都是通过Runtime.exec进行调用,从CC3我们要介绍一种不通过Runtime来弹计算器的方法,也就是Java中常提到的动态类加载,动态类加载可以让我们通过一个路径来加载一个恶意类,如果这个恶意类在静态代码块或构造代码块中写入了恶意方法,那么我们就可以通过找一条链子来初始化这个类(一般在进行实例化时会对类进行初始化),从而达到代码块中的代码执行。Class
原创 2023-05-16 21:36:58
42阅读
# 如何实现"java cc7" ## 简介 欢迎来到Java开发的世界!在本篇文章中,我将教你如何实现"java cc7"。作为一名经验丰富的开发者,我会引导你完成整个过程,并提供每一步所需的代码以及注释。 ## 流程表格 以下是整个过程的流程表格,帮助你更好地理解实现"java cc7"的步骤: | 步骤 | 描述
原创 2024-04-22 05:12:13
16阅读
JVMJVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上
fff
原创 2017-11-03 13:26:52
397阅读
,后
原创 2023-01-16 07:30:43
110阅读
# 如何在Flash CC配置Java环境 ## 简介 在使用Flash CC开发应用程序时,有时需要与Java进行交互。本文将教你如何配置Flash CC以使其能够与Java环境进行交互。 ## 流程图 以下是配置Flash CCJava环境的步骤: ```mermaid stateDiagram [*] --> 检查Java环境 检查Java环境 --> 安装Java
原创 2024-01-02 03:22:48
34阅读
# Java代码CC插件 ## 1. 介绍 代码CC(Code Complexity)是指代码的复杂度,可以用来评估代码的可读性和可维护性。Java代码CC插件是一种用于计算Java代码复杂度的工具,可以帮助开发人员在编写代码过程中及时发现并改进复杂的代码结构。 本文将介绍Java代码CC插件的使用方法,并通过代码示例来说明如何进行代码复杂度分析和优化。 ## 2. 安装和配置Java代码
原创 2024-02-04 08:39:16
260阅读
# Java CC6:探索Java编程的更深层次 在Java编程的学习过程中,我们经常会碰到一些新的概念和技术,其中Java CC6是一个非常重要的概念。CC6代表的是Java Concurrency in Practice,即Java并发编程实践。在并发编程中,我们需要处理多个任务同时执行的情况,这需要我们更深入地了解Java的并发机制和技术。 ## 简介 Java并发编程实践是指在Jav
原创 2024-05-27 05:34:41
41阅读
1.描述   JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。   在1995年时,由Netscape公司的Brendan Eich,在
转载 2023-08-09 13:56:15
60阅读
/yanyangtian.blog.51cto.com/2310974/493582 构建高性能ASP.NET站点 第六章—性能瓶颈诊断与初步调优(上篇)—识别性能瓶颈       前言:从本篇开始就真正的进入了性能调优的阶段,在之前的文章中提到了页面加载过慢的四个
原创 2011-02-17 14:09:57
240阅读
  • 1
  • 2
  • 3
  • 4
  • 5