自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 关于博客的问题

关于博客的事

2025-03-30 00:53:18 167

原创 代码审计Tabby安装教程

想要快速高效率去审计一个项目 一个好的审计工具是必不可少的历时三天才弄好环境 我吐了。

2025-07-21 20:55:13 1017

原创 JAVA代码审计-Tarzan-cms

变量,之后就没有做任何的处理 导致的任意文件上传,然后就是进入 case 方法,我们这里就是本地保存的文件,就看最后一个逻辑处理,看文件保存在哪(这里只的是在电脑中,而不是映射的路由在哪,下文就是看这个,想看url在哪,他的报文就直接有回显)uploadLocal调用这个方法 fileUploadProperties.getUploadFolder() 传递的参数 我们先跟进fileUploadProperties.getUploadFolder()文件名必须是theme.yaml 不然就进不了if语句。

2025-05-26 02:00:37 727

原创 APP渗透-流量抓包

使用yakit 配合雷神模拟器抓取app的流量包

2025-04-18 16:42:35 347

原创 IDEA创建JSP项目

手把手教学JSP项目搭建

2025-04-14 17:25:07 309

原创 Fastjson反序列化

学习fastjson漏洞,以及高版本绕过思路

2025-04-02 13:03:18 1169

原创 JNDI注入

学习JNDI注入原理,分析流程

2025-04-01 13:38:02 1157

原创 JAVA安全-shiro721

倒数第二位怎么求呢,我们就先让最后一位明文变成0X02(此时我们是知道最后一位的中间值的,修改成对应的IV值就行),然后最后一个明文是0X02,那么倒数第二位就也是0X02,继续通过修改IV值,使其响应包返回200,虽然还是一个无效解密内容,但是这样我们就可以拿到倒数第二个中间值了,第三个就继续,先把最后两个设置位0X03,然后循环,把这个组的所有中间值爆破出来,至此,我们可以把所有的中间值都爆破出来。1.将密文进行分组(按照加密采用的分组大小),前面的第一组是初始化向量IV,从第二组开始才是真正的密文。

2025-03-30 00:34:50 950

原创 JAVA反序列化-shiro550

这里的前面,先判断是否为 HTTP 请求,如果是的话,获取 cookie 中 rememberMe 的值,然后判断是否是 deleteMe,不是则判断是否是符合 base64 的编码长度,然后再对其进行 base64 解码,将解码结果返回。在代码里(Shiro-550),Shiro 1.2.4 以上版本官方移除了代码中的默认密钥,要求开发者自己设置,如果开发者没有设置,则默认动态生成,降低了固定密钥泄漏的风险。是不是只要反序列化了我们的文件,就能“弹计算器了”。

2025-03-30 00:32:53 825

原创 JAVA安全-cb链

Apache Commons BeanUtils 是 Apache Commons 项目集的一个子项目,它提供了一组工具类,包含了属性拷贝、类型转换、属性获取和设置等功能,用于简化 JavaBean 的属性操作// 属性一般定义为privatepublic Person(int age, String name) { //有参构造public Person() { //无参构造public int getAge() { //读方法(getter)return age;

2025-03-30 00:31:50 845

原创 JAVA反序列化-CC11

这条链子是cc2+cc6的结合。

2025-03-30 00:27:19 111

原创 JAVA反序列化-CC7

if (!Map<?>) o;调用了LazyMap的equals方法,但是LazyMap中并没有equals方法,实际上是调用了LazyMap的父类AbstractMapDecorator的equals方法,虽然AbstractMapDecorator是一个抽象类,但它实现了equals方法。

2025-03-30 00:24:53 695

原创 JAVA反序列化-cc5

这里调用了transform方法,那就思路很清楚了,后半段就是ChainedTransformer+InvokerTransformer。可以看到这里是调用了toString()方法的,但是调用toString方法太多了,这里就直接跟着链子走。调用了get方法,这里链子是LazyMap.get ,所以map值应该是传入LazyMap。学习这条链子主要的目的是引入调用任意类toString方法的入口类,在链子一开始的时候构造方法要传入null,不然就直接弹计算器了。然后调用了getValue。

2025-03-30 00:24:08 202

原创 JAVA反序列化-cc2

越来越熟练了,gogogo还剩几条了。

2025-03-30 00:23:29 312

原创 JAVA反序列化-cc4

学了几条链子之后,确实发现java代码能力提升了许多,然后调试代码也顺畅许多Java反序列化Commons-Collections篇06-CC4链 | Drunkbaby’s Blog。

2025-03-30 00:22:26 347

原创 JAVA反序列化-CC3

学习CC3先需要学习java中的类加载机制因为CC3是通过动态加载类加载机制来实现自动执行的cc3的特点就是不再依赖Runtime类了。

2025-03-30 00:21:42 306

原创 JAVA动态类加载

Java 类加载是 Java 虚拟机 (JVM) 在运行时将 .class 文件转换为内存中的数据结构(主要存放在方法区)并生成对应 Class 对象的过程。这个过程使得 JVM 能够动态地加载、链接和初始化类,从而实现灵活的运行时行为。

2025-03-30 00:20:53 851

原创 java反序列化-cc6

在HashCode类中的readObject方法 中就会调用hash方法,是不是跟put方法挺像的,所以现在有个问题,我们是想让他在反序列化的时候执行命令,而不是在put方法的时候就执行了,应该怎么办?在put之后,一切都正常运行,但是到了LazyMap类的get方法时,if判断为true了,没有执行transform,导致命令没有执行。我们在put的时候先随便传一个值,然后在用反射进行改变成我们需要的值,这样就解决了。现在我们确保了这个是可以的,我们就继续看哪里调用了。后续利用链.hashCode()

2025-03-30 00:20:00 845

原创 JAVA反序列化

Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。序列化分为两大部分:序列化和反序列化。序列化是这个过程的第一部分,将数据分解成字节流,以便存储在文件中或在网络上传输。反序列化就是打开字节流并重构对象。对象序列化不仅要将基本数据类型转换成字节表示,有时还要恢复数据。恢复数据要求有恢复数据的对象实例。在序列化跟反序列化很重要的两个方法writeObject和readObject只要服务端反序列化数据,客户端传递类的readObject。

2025-03-30 00:17:27 701

原创 JAVA反序列化-cc1-LazyMap

这条链子是补充链,利用点还是InvokeTransformer发现在LazyMap类中有一个public类型的get方法中有调用transform方法我们想实例化这个对象调用这个方法试试是否可行,但是先看这个类的构造函数,作用域为protected,因为无法直接获取,而decorate方法里面能够 new 一个LazyMap对象,于是我们构造如下的 EXP,来证明这条链子暂时是可行的。

2025-03-30 00:15:59 317

原创 JAVA动态代理

java的代理模式分为两种 静态代理和动态代理。

2025-03-30 00:04:11 586 1

原创 java反序列化-cc1-TransformedMap

学习java反序列化之cc1

2025-03-28 23:30:38 852 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除