SQL之利用操作系统

来源:互联网 发布:好看的电视剧 知乎 编辑:程序博客网 时间:2024/06/18 15:31

 一访问文件系统
读文件:
MySQL:可以使用load data infile和load_file()函数读取文件,其中load_file()可以直接读取结果:select load_file('c:\1.txt');
MSSQL:可以使用bulk insert复制文件到数据库表中:bulk insert table from 'c:\1.txt';和读取文件:select * from table;
Oracle:可以使用Oracle Directory, Oracle Text读取文件
写文件:
MySQL:使用select into outfile(dumpfile)写入文件,例如:select '<? php eval($_POST['Jim']);?>' into outfile 'C:/2.txt';
MSSQL:使用xp_cmdshell扩展存储过程写入文件,例如:exec xp_cmdshell 'echo table 1>c:\test.txt' 
Oracle:使用utl_file, DBMS_ADVISOR, Java实现文件写入
二.执行操作系统命令
1.MySQL不支持执行shell命令
2.Oracle
extproc、Java和DBMS_SCHEDULER是oracle运行操作系统命令的正式方法
3.MSSQL
xp_cmdshell只接收一个参数

三.提升权限(获取管理员权限):
1.SQL Server
openrowset命令:SQL Server 2000上,所有用户均可调用openrowset, 而在SQL Server 2005上,该操作默认被禁用
2.Oracle
在Oracle中,通过web应用的SQL注入来提升权限非常困难。大多数提升权限的方法均需要PL/SQL注入。

阅读全文
0 0
原创粉丝点击