JavaSec 基础
文章平均质量分 83
java 安全学习基础
她送的苦茶子
不知名 ctfer
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JavaSec 基础之 CC1 链
调用了 checkSetValue。而且它是 TransformedMap 的父类。原创 2024-03-11 23:54:20 · 665 阅读 · 2 评论 -
JavaSec 基础之 URLDNS 链
然后设置 hashCode 为 1234,这样put时 hashcode 不是默认的 -1 就不会走后面的逻辑而是直接返回 1234,所以 put 之后不会产生 dns 解析,然后我们设置 hashCode 为 -1,接着序列化 U,所以反序列化进入 hashCode 时 hashCode 为 -1,产生 dns 解析。也会触发 URL 的 hashcode 方法,第一次因为 hashcode 默认 -1 ,所以可以触发下面的方法,但是返回值赋给了 u 这个对象的 hashcode 再序列化 u。原创 2024-03-08 23:33:02 · 1112 阅读 · 0 评论 -
JavaSec 基础之反序列化
Java 序列化是指把 Java 对象转换为字节序列的过程;Java 反序列化是指把字节序列恢复为 Java 对象的过程;原创 2024-03-08 14:51:19 · 475 阅读 · 1 评论 -
JavaSec 基础之五大不安全组件
Fastjson 是阿里巴巴的开源 JSON 解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到 JavaBean。攻击者可以通过在 json 字符串中指定变量的具体类型 (子类或接口实现类),来实现实例化指定的类,借助某些特殊的 class,如 TemplatesImpl,可以实现任意代码执行。该内容传递到后端被log4j2打印出来,就会触发恶意的Class的加载执行(可执行任意后台指令),从而达到攻击的目的。原创 2024-03-03 20:14:48 · 1272 阅读 · 0 评论 -
JavaSec 基础之 JNDI 注入
JNDI(Java Naming and Directory Interface)是一个应用程序设计的 API,一种标准的 Java 命名系统接口。JNDI 提供统一的客户端 API,通过不同的访问提供者接口JNDI服务供应接口(SPI)的实现,由管理者将 JNDI API 映射为特定的命名服务和目录系统,使得 Java 应用程序可以和这些命名服务和目录服务之间进行交互。通俗一点讲:JNDI对访问rmi或者ldap服务的代码进行了封装,我们使用JNDI就可以访问这些服务,不需要自己再去关注访问服务的细节。原创 2024-03-02 21:19:47 · 957 阅读 · 0 评论 -
JavaSec 基础之反射
的第一个参数是对象实例,即在哪个实例上调用该方法,后面的可变参数要与方法参数一致,否则将报错。的所有信息,包括类名、包名、父类、实现的接口、所有方法、字段等,因此,如果获取了某个。如果获取到的Method表示一个静态方法,调用静态方法时,由于无需指定实例对象,所以。所以,反射是为了解决在运行期,对某个实例一无所知的情况下,如何调用其方法。通过Field实例既然可以获取到指定实例的字段值,自然也可以设置字段的值。实例只是第一步,我们还可以拿到一个实例对应的该字段的值。类型的实例,并关联起来。原创 2024-02-28 15:38:35 · 314 阅读 · 0 评论 -
JavaSec 基础之 Maven
Maven是一个跨平台的项目管理工具。作为Apache组织的一个颇为成功的开源项目,其主要服务于基于Java平台的项目创建,依赖管理和项目信息管理。maven是Apache的顶级项目,解释为“专家,内行”,它是一个项目管理的工具,maven自身是纯java开发的,可以使用maven对java项目进行构建、依赖管理。基于 POM(项目对象模型) 的概念。原创 2024-02-27 15:18:01 · 1048 阅读 · 0 评论 -
JavaSec 基础之 RCE
TOC]原创 2024-02-24 22:05:10 · 597 阅读 · 0 评论 -
JavaSec 基础之 XXE
白盒测试就看关键类 XMLReader,SAXBuilder,SAXReader。。。黑盒测试就抓包看看有没有传 xml 数据的,有传的直接改了外部实体引用试试。其实 php和 java 的 xxe 没什么区别。原创 2024-02-23 22:32:04 · 789 阅读 · 0 评论 -
JavaSec 基础之 SQL 注入
in之后多个username查询时使用 # 同样会报错(因为预编译机制,系统将我们输入的字符当作了一个字符串,因此查询结果为空,不能满足业务功能需求),因此很多研发会采用${}来解决,从而造成SQL注入。编写xml文件时,Mybatis支持两种参数符号,一种是#,另一种是$。由于使用 #{} 会将对象转成字符串(因为预编译机制,系统将我们输入的字符当作了一个字符串)根据字符串排序是不生效的。Mybatis的SQL语句可以基于注解的方式写在类方法上面,更多的是以xml的方式写到xml文件。原创 2024-02-22 22:43:13 · 1026 阅读 · 0 评论
分享