详解sql注入通过函数判断数据库类型

数据库 SQL Server
某些SQL函数也可判断数据库类型,虽然SQL语句大部分是通用的。但一些内置的函数还是有一定的区别。下面就将为您介绍sql注入通过函数判断数据库类型,供您参考。

某些SQL函数可以判断数据库类型,下面就将为您介绍sql注入通过函数判断数据库类型,供您参考,希望对您更深入了解SQL函数有所帮助

某日,发现一目标存在SQL注入,且过滤了select等相关敏感字段,用工具暂无法判断数据库类型。
后发现调用某些SQL函数也可判断数据库类型,虽然SQL语句大部分是通用的。但一些内置的函数还是有一定的区别。

len和length
在mssql和mysql以及db2内,返回长度值是调用len()函数;在oracle和INFORMIX则是通过length()来返回长度值。
换句话说。

当你使用and len('a')=1的时候,返回正常页面时,可以推断当前的数据库类型可能是mssql,或mysql,或是db2。反之则可能会是oracle和informix。

@@version和version()
在mysql内,可以用@@version或是version()来返回当前的版本信息。但无法判断是mysql还是mssql时,可以用version()函数来构造判断。
换句话说:

version()>1 返回与@@version>1 相同页面时,则可能是mysql。如果出现提示version()错误时,则可能是mssql。

substring和substr
在mssql中可以调用substring。oracle则只可调用substr

 

 

【编辑推荐】

SQL函数取得系统日期

sql函数遍历BOM表的方法

判断闰年的SQL函数

基于时间SQL函数详解

教您使用SQL中的TRUNC函数

责任编辑:段燃 来源: 百度空间
相关推荐

2014-01-17 12:35:48

2011-08-22 11:39:53

SQL Server数PIVOT

2019-07-17 10:19:36

MySQL数据库SQL

2011-08-15 13:48:47

SQL ServerROW_NUMBER(

2013-07-25 20:36:02

2021-03-18 08:20:19

SQLServer数据库SQL

2010-04-12 08:59:00

2010-09-10 15:11:07

SQLGetKey函数

2017-08-10 10:23:59

2022-03-29 10:55:10

Mysql数据库

2022-03-25 09:04:01

Mysql数据库

2010-09-10 16:12:08

sql函数判断

2013-04-26 11:39:40

2010-09-30 09:11:01

2011-08-25 13:41:50

SQL Server 变更跟踪

2010-09-08 16:03:57

SQL临时表数据库

2010-03-16 10:12:40

SQL Server

2011-08-11 09:12:31

SQL Server nolock

2010-09-07 15:20:58

SQL语句事务

2009-10-09 15:20:12

点赞
收藏

51CTO技术栈公众号