SQL注入——时间盲注

目录

一,时间盲注概述

二,关键函数

sleep()

if()

三,注入原理

四,实例


一,时间盲注概述

web页面只返回一个正常页面。利用页面响应时间不同,逐个猜解数据。但是前提是数据库会执行命令代码,只是不反馈页面信息。

回顾:

当页面有回显选择union注入;

当页面没有回显但是有报错信息选择报错注入;

当页面既没有回显也没有报错,但是有页面真假值,选择布尔盲注;

没有回显,没有报错,没有页面真假值,选择时间盲注;

二,关键函数

sleep()

函数sleep()参数为休眠时长,以秒为单位,可以为小数

if()

函数if(condition,true,false)

condition为条件,true为条件为真时返回的值,false为条件为假时返回的值

例如:

select if(1=1,sleep(0),sleep(3));

1=1为真,执行休眠0秒

三,注入原理

substr((),1,1)的作用是:从第一个字母开始显示一个字母

通过响应时间长短不一样,判断条件是否成立(比大小)

select if(ascii(substr(select database(),1,1))>100,sleep(0),sleep(3));

四,实例

以less-9为例: 

由页面的响应时间来推算前面的猜解是否正确

?id=1'  and select if(ascii(substr(select database(),1,1))>115,sleep(0),sleep(3)) --+

在此之后,我们可以更改substr参数推算第二个字母,并由此推算第二个字母,直到得出结果:

?id=1'  and select if(ascii(substr(select database(),2,1))>115,sleep(0),sleep(3)) --+

猜你喜欢

转载自blog.csdn.net/heyingcheng/article/details/129388602