Tomcat内存马 简介 Tomcat内存马主要分为三种,分别是Filter型、Servlet型和Listener型,其原理是动态的将恶意组件添加到正在运行的Tomcat服务器中。 使用范围 Servlet在3.0版本之后能够支持动态注册组件,而Tomcat7.x及以上支持Servlet3.0。 Filter型 源码分析 我们首先来实现一个简单的F…
Tomcat基础知识 Tomcat简介 Tomcat 是一个小型的轻量级应用服务器,其主要作用为Servlet和 JSP容器,支持全部JSP以及Servlet规范。但它同样具有处理HTML页面的功能,可以充当Web服务器。简单点说,Tomcat可以看成是Web服务器+Servlet容器,不过其作为Web服务器功能较弱。 Tomcat架构 Tomca…
JNDI注入 简介 JNDI(The Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API,命名服务将名称和对象联系起来,使得我们可以用名称访问对象。 这些命名/目录服务提供者: RMI (JAVA远程方法调用) LDAP (轻量级目录访问协议) CORBA…
Fastjson反序列化 0x00 前言 fastjson 是阿里巴巴的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到 JavaBean。fastjson是目前java语言中最快的json库,其功能完备且使用简单,因而使用非常广泛。自fastjso…
CommonsBeanutils PriorityQueue+Commons Beanutils Apache Commons Beanutils Apache Commons Beanutils 是 Apache Commons 工具集下的另一个项目,它提供了对普通Java类对象(也称为JavaBean)的一些操作方法。 JavaBean是一种符…
Shiro Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。 Shiro-550 漏洞原理 为了让浏览器或服务器重启后用户不丢失登录状态,Shiro支持将持久化信息序列化并加密后保存在Cookie的rememberMe字段中,下次读取时进行Base64解密后,再使用aes密钥解密后的数据,进行反序列化…
CommonCollections 2 commons-collections有两个版本 commons-collections:commons-collections org.apache.commons:commons-collections4 前者是Commons Collections为3.2.1版本,后者版本号为4.0,两者都是独立的包,…
Common-Collections 3 这条链为InvokerTransformer的绕过 TemplatesImpl对CC1简单改造 在学习过TemplatesImpl 加载字节码之后,我们可以利用加载字节码的方式去替代InvokerTransformer调用Runtime的exec方法,只需调用 TemplatesImpl.newTransf…
ClassLoader与字节码 双亲委派机制 ClassLoader为类加载器,它是用来加载 Class 的。它负责将 Class 的字节码形式转换成内存形式的 Class 对象。字节码可以来自于磁盘文件 .class,也可以是 jar 包里的 .class,也可以来自远程服务器提供的字节流,字节码的本质就是一个字节数组 []byte,它有特定的复…
Common-Collections 6 在CC1中,我们谈到了java 8u71以后,AnnotationInvocationHandler#readObject 发生了变化,导致原有的链无法利用了,那在高版本的java中,如何改造这条利用链呢?关键在于如何调用LazyMap#get,我们来看一下通用性较高的CC6是如何构造的 /* Gadget…