前言: C3P0是JDBC的一个连接池组件 JDBC: ​ 是Java DataBase Connectivity的缩写,它是Java程序访问数据库的标准接口。使用Java程序访问数据库时,Java代码并不是直接通过TCP连接去访问数据库,而是通过JDBC接口来访问,而JDBC接口则通过JDBC驱动来实现真正对数据库的访问 连接池: ​ 在执行JDBC的增删改查的操作时,如果每一次操作都来一次打开连接,操作,关闭连接,那么创

Read More...


java的防护机制其实有很多种,最开始是对于java.rmi.server.useCodebaseOnly配置,从而限制rmi load class;但是jndi利用点可以多种,可以用reference去绑定第三方的factoryclass;从而导致采用urlclassloader去进行远程加载,这种加载机制和rmi load class还不一样,所以java.rmi.server.useCodebaseOnly这个配置无法限制jndi

Read More...


​ 之前发过两种内存马的原理,其实也都是利用反射进行动态注册,那么针对查杀也有一些方法,我这边是随便直接写了个jsp脚本,内部采用反编译技术并且结合了一些敏感的内存马特点进行相关恶意内存检测,这里我只是检测了getRuntime,exec( ,ProcessBuilder,ProcessImpl,shell等敏感的代码区域;还有一些文件落地情况,和classloader的情况等等;实际情况根据需要来,可以自己后期加上一些新的污点;

Read More...


Tomcat Filter shell

前言:​ 之前有一篇文章写了servlet和timer类型的两种内存马,并且放出了我自己调试的一个timer内存马;这篇文章就来记述一下Filter内存马 正文:​ 首先来自定义一个filter先来感受一下,一个请求流在到达servlet之前是要经过FilterChain的过滤,然后最后才可达到servlet去执行相关的逻辑;自定义fitler如下: 1234567891011121314151617181920212223

Read More...


之前爆了一个大洞,据说堪比log4j,现在追溯一波看看情况; 还是老思路,从后往前推;漏洞是一个常规的spel注入; 看一下触发点,可以看到在ShortcutConfigurable这个接口类里getValue函数中,传入spelExpressionParser,第三个参数是entryValue String;然后下面进行解析,把在 #{} 之间的str拿出来做spel解析;接着这个函数往前追; 看到在norma

Read More...


前言:也是一个好久前的学习的课题了,今天来记述一波;后面有自己调试的timer内存马;可直接利用; 正文:内存马对于java来说还是比较的花式的,在php中可以直接通过while进行无限的循环从而拿到外部参数进行命令执行;那么类比一下; 新思路:​ 采用java计时任务进行内存马利用;简单的原理就是采用一个java.util.Timer实例化一个Timer对象;利用schedule函数开启一个TimerTask;也就是说创建了一个

Read More...


前言:​ 最近打算将知识点学的细致一点,之前分析过java原生的序列化和反序列化流程,还算是比较的细;但是今天想了一个问题,在反序列化的时候如果目标类继承Serializable,那么在反序列化的时候不会触发其构造函数;当然我们知道,在java中实例化对象的方式一般有五种; new object Class.newinstance Constructor.newinstance Unsafe 反序列化创建对象 今天着重探究一下

Read More...


前言:java的反序列化漏洞多样,有原生的反序列化,也有XMLDecoder反序列化,今天来分析一下SnakeYaml反序列化; 正文:YAML是”YAML Ain’t a Markup Language”;它并不是一种标记语言,而是用来表示序列化的一种格式;类似于XML但比XML更简洁。在java中自然有对应的库对其进行解析,SnakeYaml;支持对象的序列化和反序列化;常见的利用javax.script.ScriptEngineM

Read More...


前言:这个OA是os_system;不能算一个大众的oa;只能说是一个小型的oa;简单审计一下看看效果; 正文:打开项目先看依赖很显然的看到是springboot+mybaits+freemarker+bootstrap组合,那么针对于这种一般sql注入是很难进行攻击,往往在一些敏感的输入点,会利用mybatits的#{}进行接收参数;其本质上也是利用了jdbc的preparement;但是还是抱着试一试的态度进行相

Read More...


spel简介:一篇老文章了,放在电脑里许久了,今天发出来; Spring表达式语言(简称 SpEL,全称Spring Expression Language)是一种功能强大的表达式语言,支持在运行时查询和操作对象图。它语法类似于OGNL,MVEL和JBoss EL,在方法调用和基本的字符串模板提供了极大地便利,也开发减轻了Java代码量。另外 , SpEL是Spring产品组合中表达评估的基础,但它并不直接与Spring绑定,可以独立使

Read More...


s1mple's safety