fastjson fileread

fastjson fileread 写在前面 前段时间有幸做了一道fastjson的题目,顺带研究了一下fastjson的利用链。但是苦于网络上有关fastjson的利用脚本很少,所以就萌生了利用空闲时间写一个fastjson的gui版利用脚本。不仅巩固一下我的java学习,也为其他人比赛和研究提供一些方便 链接 54huarui/fastjsonfileread-test-exp 关于漏洞 CVE-2022-25845-In-Spring 参考如下: luelueking/CVE-2022-25845-In-Spring fastjson1.2.80 in Springtboot新链学习记录 ph0ebus/CVE-2022-25845-In-Spring 还在慢慢慢慢地磨蹭,如果你看到这里作者还没做好第二条链子,请速度去拷打作者。

January 6, 2025 · 1 min · 15 words · huarui

fastjson反序列化

fastjson反序列化 版本1.2.80 题目源码 package demo.Controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; @RestController public class JsonController { @RequestMapping(value={"/json"}, method={RequestMethod.POST}) public String json(String json) { JSONObject jsonObject = null; try { jsonObject = JSON.parseObject((String)json); return jsonObject.toJSONString(); } catch (Exception e) { e.printStackTrace(); return "error"; } } } 平平无奇的源码,值得注意的是因为用了 @RequestMapping注解,所以它是从表单里面获取一个名叫json的键,然后值才是json格式(逆天题目设计,害得我捣鼓了半天,最后在本地跑了才发现端倪) ...

December 23, 2024 · 1 min · 56 words · huarui

内存马

内存马 暂无

December 16, 2024 · 1 min · 2 words · huarui

JAVA类加载器

JAVA类加载器 Java 的类加载器(ClassLoader)是 Java 中的核心机制之一,它负责将 Java 字节码(class 文件)加载到 JVM 中,并定义类的运行时行为。 Java程序的执行流程 classloader类中的方法 方法 描述 loadClass(String name) 加载指定名称的类,并返回对应的Class对象。这个方法使用双亲委派模型,从上至下依次尝试加载类。如果找不到类,则会抛出ClassNotFoundException异常。 findClass(String name) 查找并加载指定名称的类,并返回对应的Class对象。这个方法一般在自定义ClassLoader中重写,以实现自定义的类查找逻辑。如果找不到类,则需要抛出ClassNotFoundException异常。 defineClass(String name, byte[] b, int off, int len) 将字节数组转换为Java类的定义,并返回对应的Class对象。这个方法通常在自定义ClassLoader中被调用,用于加载已经获得的类字节码。 getParent() 获取当前ClassLoader的父级ClassLoader。ClassLoader在加载类时会首先委托给父级ClassLoader去加载。如果没有父级ClassLoader,则返回null。 getSystemClassLoader() 返回系统默认的ClassLoader。这是应用程序的默认ClassLoader,用于加载类路径上的类。 getClassLoader() 获取给定类的ClassLoader。这个方法可以用来获取任意类的ClassLoader,例如通过Class对象的getClassLoader()方法来获取该类的ClassLoader。 setDefaultAssertionStatus(boolean enabled) 设置类加载器的默认断言状态。断言状态决定由ClassLoader加载的类是否默认启用或禁用断言。 setPackageAssertionStatus(String packageName, boolean enabled) 设置指定包的断言状态。可以通过这个方法来控制指定包及其子包下的类是否启用或禁用断言。 setClassAssertionStatus(String className, boolean enabled) 设置指定类的断言状态。可以通过这个方法来控制指定类是否启用或禁用断言。 clearAssertionStatus() 清除类加载器的断言状态,将其重置为默认值。这会清除所有已设置的包和类的断言状态设置。 如果需要加载自定义位置的类,例如从网络、加密文件中加载。此时可以通过继承 ClassLoader 类来自定义类加载器。 ...

December 1, 2024 · 1 min · 90 words · huarui

sun.misc.Unsafe

sun.misc.Unsaf 简介 sun.misc.Unsafe是Java底层API(仅限Java内部使用,反射可调用)提供的一个神奇的Java类,Unsafe提供了非常底层的内存、CAS、线程调度、类、对象等操作、Unsafe正如它的名字一样它提供的几乎所有的方法都是不安全的。 人如其名,这是一个很危险的类,偶然看到一篇文章,觉得很有趣,就顺手记录了下来 特点 Unsafe类是一个不能被继承的类且不能直接通过new的方式创建Unsafe类实例,如果通过getUnsafe方法获取Unsafe实例还会检查类加载器,默认只允许Bootstrap Classloader调用。 既然无法直接通过Unsafe.getUnsafe()的方式调用,那么可以使用反射的方式去获取Unsafe类实例。 获取Unsafe对象 反射获取。老朋友了,不多叙述 // 反射获取Unsafe的theUnsafe成员变量 Field theUnsafeField = Unsafe.class.getDeclaredField("theUnsafe"); // 反射设置theUnsafe访问权限 theUnsafeField.setAccessible(true); // 反射获取theUnsafe成员变量值 Unsafe unsafe = (Unsafe) theUnsafeField.get(null); 或者 // 获取Unsafe无参构造方法 Constructor constructor = Unsafe.class.getDeclaredConstructor(); // 修改构造方法访问权限 constructor.setAccessible(true); // 反射创建Unsafe类实例,等价于 Unsafe unsafe1 = new Unsafe(); Unsafe unsafe1 = (Unsafe) constructor.newInstance(); allocateInstance无视构造方法创建类 假设我们有一个类xxx,因为某种原因我们不能直接通过反射的方式去创建UnSafeTest类实例,那么这个时候使用Unsafe的allocateInstance方法就可以绕过这个限制了。 ...

December 1, 2024 · 1 min · 71 words · huarui

java笔记

layout: page JAVA笔记 接口的声明 public interface Transformer { public Object transform(Object input); } 这里的interface指的是接口,不是类 关于Object类型: Object 的特点 通用类型: 一个变量或参数声明为 Object 类型时,它可以引用任何对象类型的实例,例如 String、Integer、List 等。 多态性: 由于 Object 是所有类的基类,使用 Object 类型可以编写通用代码,适用于任何对象类型。 但是,使用时需要将其 向下转型 成具体类型才能调用子类特有的方法。 不能表示原始数据类型: 原始数据类型(int、double 等)无法直接用 Object 表示,但可以通过它们的 包装类(如 Integer、Double 等)来间接使用。 示例用法 public class Main { public static void main(String[] args) { Object obj = "Hello, World!"; // Object 类型可以引用 String 对象 System.out.println(obj); // 调用 toString() 方法,输出: Hello, World! Object number = 42; // Object 类型可以引用 Integer 对象 System.out.println(number); // 调用 toString() 方法,输出: 42 } } 向下转型 当 Object 引用一个具体类型的对象时,需要显式地将其 向下转型 到具体类型以访问该类特有的方法。 ...

November 25, 2024 · 1 min · 131 words · huarui

URLDNS链

URLDNS链 序列化与反序列化 序列化:将对象变为一串字节码(一般hex的开头为AC ED 00 05),便于传输 反序列化:将序列化的字节码恢复为对象 序列化: import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; public class ser { public static void main(String[] args) throws IOException, IOException { student stu = new student(); //将student类的序列化数据写入ser.txt ObjectOutputStream oos= new ObjectOutputStream(new FileOutputStream("ser.txt")); oos.writeObject(stu); } } 反序列化: import java.io.FileInputStream; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectInputStream; public class uns { public static void main(String a[]) throws IOException,ClassNotFoundException { ObjectInputStream ois = new ObjectInputStream(new FileInputStream(("ser.txt"))); student o = (student) ois.readObject(); //readObject反序列化得到实例为Object类型 System.out.println(o.getscore()); } } 安全问题 被序列化的对象的类中如果定义了readObject方法,则会使用类中的readObject方法来反序列化,readObject中只要有ois.defaultReadObject();(ois是传入的ObjectInputStream对象)就可以正常完成反序列化过程。 ...

November 18, 2024 · 3 min · 445 words · huarui

zuoye5

msf木马 环境: 被攻击机:vm虚拟机下的windows7(已经被扫描拥有永恒之蓝漏洞) 攻击机:kali(vm虚拟机下的kali) 操作: 先在kali机上生成木马 这里的木马使用的是反向代理reverse_tcp,由木马来访问攻击机实现数据传输。如果被攻击机不能出网,则木马不能直接访问攻击机,此时可以使用正向代理。 lhost:攻击机ip lport:本地与木马的通讯端口 然后使用msf攻击win7,并且上传刚刚生成的payload.exe木马 在被攻击机上运行刚刚的程序 ...

November 1, 2024 · 1 min · 12 words · huarui

zuoye4

笑脸漏洞检测 经过查询得知python的socket库中包含网络探测所需要的函数,在代码前面导入该库 编写 先导入socket库以及FTP库 import socket from ftplib import FTP 接下来获取输入指定目标ip ip = input("检测ip:") 编写FTP连接部分 笑脸漏洞即账号名中带有:) 的时候,会打开一个开放在6200端口的后门,可以连接到靶机的shell ftp = FTP() user = "test:)" passwd = "123" ftp.connect(ip, 21, timeout=100) print("成功连接 很可能存在笑脸漏洞") response = ftp.login(user, passwd) ftp.quit() 全部代码如下: ...

October 25, 2024 · 1 min · 78 words · huarui

山河CTF--yzmcms7.0

山河CTF–yzmcms7.0 利用 打开进去是yzmcms,随意输入一个错误的页面,得知cms的版本号。 按照网上的poc试了一下,出错了 看来是不行了,查了资料知道漏洞点也在admin_add存在同样的功能点 POC 成功执行命令,算是利用成功了

October 16, 2024 · 1 min · 7 words · huarui