java反序列化payload生成器(持续更新)
利用lazymap将翻译器链转换为可反序列化触发的payload package org.example;import org.apache.commons.collections.functors.ChainedTransformer;import org.apache.commons.collections.keyvalue.TiedMapEntry;import org.apache.commons.collections.map.LazyMap;import java.io.*;import java.util.Base64;import java.util.HashMap;import java.util.Map;public class TurnChainToPayload { private static final TurnChainToPayload INSTANCE = new TurnChainToPayload(); private TurnChainToPayload() {} public static...
大家好啊我叫ivory
主业是打ctf,学习网安知识: 有人问我:“你是ctfer吗”我觉得我是 副业偶尔搞搞各种各样的开发例如qqbot: 目前属于Syclover安全技术小组的新芽组希望能继续跟大家一起学习进步
java链子分析—Shiro
Shiro反序列化在CC3的链子中使用了Templateslmpl加载任意恶意类可以执行任意java代码 它与CC6链子的区别就像php中call_user_func与eval的区别一样造成任意代码执行的eval显然具有更高的价值 shiro框架的漏洞在rememberme的自动登录上会存一段aes加密的数据在浏览器中,再次访问时通过cookie携带到达后端后反序列化以加载用户数据而这个aes加密有一个默认的Key那么就可以攻击不修改Key的网站 Shiro链子import com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl;import com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl;import org.apache.commons.collections.Transformer;import org.apache.commons.collections.functors.InvokerTransformer;import...
java链子分析—CommonsCollections3
利用TemplatesImpl的任意恶意类加载demo上一篇中学习了利用TemplatesImpl加载类: package org.example;import com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl;import com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl;import java.lang.reflect.Field;import java.util.Base64;public class TemplatesImplExample { public static void main(String[] args) throws Exception { byte[] code = Base64.getDecoder().decode("base64字节码"); TemplatesImpl obj = new TemplatesImpl();...
java的classloader们
之前在CC1和CC6的链子中一开始都使用了反射调用Runtime.class这里的.class对象是类被jvm加载时创建的元数据 而jvm需要加载一个类时会去磁盘上加载.class文件这里的.class文件是源码编译后的二进制字节码数据 既然是字节码数据那么和反序列化时使用的序列化数据一样很多不是可见字符,需要借助编码等方式进行直接传输 当然还有远程加载的方法: URLClassLoaderpackage org.example;import java.net.URL;import java.net.URLClassLoader;public class HelloClassLoader{ public static void main( String[] args ) throws Exception { URL[] urls = {new URL("http://localhost:80/")}; URLClassLoader loader =...
java链子分析—CommonsCollections6
在java的8u71版本后,AnnotationInvocationHandler类的readObject方法逻辑变化了这就导致了我们的CC1链子失效所以这里有另一种链子较为通用:ysoserial的CommonsCollections6: package org.example;import org.apache.commons.collections.Transformer;import org.apache.commons.collections.functors.ChainedTransformer;import org.apache.commons.collections.functors.ConstantTransformer;import org.apache.commons.collections.functors.InvokerTransformer;import org.apache.commons.collections.map.LazyMap;import...
java链子分析—CommonsCollections1
一个触发命令执行的Demopackage org.vulhub.Ser;import org.apache.commons.collections.Transformer;import org.apache.commons.collections.functors.ChainedTransformer;import org.apache.commons.collections.functors.ConstantTransformer;import org.apache.commons.collections.functors.InvokerTransformer;import org.apache.commons.collections.map.TransformedMap;import java.util.HashMap;import java.util.Map;public class CommonCollections1 { public static void main(String[] args) throws Exception { ...
tpctf2025
tpctf web复现supersqlidef flag(request:HttpRequest): if request.method != 'POST': return HttpResponse('Welcome to TPCTF 2025') username = request.POST.get('username') if username != 'admin': return HttpResponse('you are not admin.') password = request.POST.get('password') users:AdminUser = AdminUser.objects.raw("SELECT * FROM blog_adminuser WHERE username='%s' and password...
java链子分析—URLDNS 梦开始的地方
看看ysoserial的payload package ysoserial.payloads;import java.io.IOException;import java.net.InetAddress;import java.net.URLConnection;import java.net.URLStreamHandler;import java.util.HashMap;import java.net.URL;import ysoserial.payloads.annotation.Authors;import ysoserial.payloads.annotation.Dependencies;import ysoserial.payloads.annotation.PayloadTest;import ysoserial.payloads.util.PayloadRunner;import ysoserial.payloads.util.Reflections;/** * A blog post with more details about this gadget...
java安全反射篇
反射Java的反射(Reflection)是一种允许程序在运行时动态访问、检测和修改自身结构和行为的机制。通过反射,Java代码可以获取类的信息(如类名、方法、字段、构造器等),甚至操作类的私有成员、动态创建对象、调用方法等。以下是反射的核心概念和用法: 为什么叫“反射”?“反射”这一名称来源于“程序能够像镜子一样观察自身结构”的比喻:反射(Reflection)...