sql注入mysql判断_SQL注入通过函数来判断数据库类型

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-28 18:27   111   0

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

SUBSTRING('abc',1,1)=a 返回成功,刚可能是mssql。使用substr('abc',1,1)=a 返回成功,则可能为oracle

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP