延时注入

发布于 2022-03-16  192 次阅读


什么是延时注入?

延时注入就是利用sql自带的if语句和sleep函数的配合使用,将查询的数据通过if语句进行猜测,利用sleep()函数使得if语句的结果可以通过页面反应的时间进行判断,从而得知我们想知道的数据。

函数解释

if(str1,str2,str3)   如果str1正确就执行str2,否则执行str3
sleep(m)             使程序暂停m秒

靶场实操

0x00 Rank1

首先进行对数据库长度的判断

image-20211207215439106
image-20211207215339898

可见数据库名是有12个字符,爆破出来

image-20211207221238095

数据库名为 107 97 110 119 111 108 111 110 103 120 105 97 即 kanwolongxia

image-20211207222617470
image-20211207222537196

有三个表,然后分别查出表的名称

image-20211207230916168

第一个表 108 111 102 108 97 103 即 loflag

另外两个表分别为newsuser

loflag的列名

image-20211207231916811

两个字段

image-20211207232256826

第一个字段 73 100 即 ID

image-20211207232604812

第二个字段 102 108 97 103 108 111 即 flaglo

flaglo的数据

image-20211207233047739

有5条数据,分别爆出数据

image-20211207233939880

第一个数据 122 75 97 81 45 81 81 81 zKaQ-QQQ

image-20211207234111526

第二个数据 122 75 97 81 45 82 68 即 zKaQ-RD

image-20211207234142960

第三个数据 122 75 97 81 45 77 111 114 101 110 即 zKaQ-Moren

image-20211207234208484

第四个数据 122 75 97 81 45 116 105 109 101 45 104 106 即 zKaQ-time-hj

image-20211207234030357

第五个数据 122 75 97 81 45 116 105 109 101 45 122 120 120 122 即 zKaQ-time-zxxz

OK 第一关结束

0x01 Rank 2

第二关闭合方式为('')闭合,注入过程一致

https://inject2b.lab.aqlab.cn/Pass-14/index.php?id=1') and if(length(database())>1,sleep(5),1) -- qwe

总结

  • 延时注入和布尔盲注的共同之处,都是无法通过回显内容直接获取查询数据的结果;
  • 不同之处在于布尔盲注可以通过回显来判断注入语句的正确性,而延时盲注的回显只有一种结果,所以通过页面反应时间来判断语句的正确性。

本当の声を響かせてよ