【SQL注入之sqli-labs】Less 6 - Less 10 练习笔记

xiaoxiao2021-02-28  122

【SQL注入之sqli-labs】Less 6 - Less 10 练习笔记

Less 6 - 10 这部分的内容基本上和Less 1-5差不多,换汤不换药,如果出现疑惑,可以看看1-5的解释。

0x01 Less 6

简单的说下测试的过程

" // 出现SQL语句错误,说明可以基于报错修改参数,且"闭合方式 id=1" and "1"="1 // 是否出现SQL注入的特征

最后得出payload:

id=1" and [payload] and "1"="1

0x02 Less 7

很惭愧,暂未成功。

0x03 Less 8(单引号盲注)

这题虽然很容易但是比较贴切生产环境的,一般生产的环境中都是盲注。

id=1' //没有出现信息 id=1" //出现信息 id=1' and '1'='1

这题和前面的题目非常的相像,唯一的不同就是他不会抛出相应的异常信息来提示我们,我们主要靠他信息是否输出。 如果输出了信息,那么说明我们的语法不存在错误,如果没有输出信息,那么就是说我们可能出现的语法错误。 最后得出payload:

1' and [payload] and '1'='1

0x04 Less 9(基于时间盲注-单引号)

一开始我是直接

1' and '1'='1 1' and '1'='2

发现下面的You are in………..一直都是显示的,我直接翻代码。

if($row) { echo '<font size="5" color="#FFFF00">'; echo 'You are in...........'; echo "<br>"; echo "</font>"; } else { echo '<font size="5" color="#FFFF00">'; echo 'You are in...........'; echo "</br></font>"; echo '<font color= "#0000ff" font size= 3>'; }

发现他不管语法正确错误,都不显示查询的结果,那么这个时候,我们才抬头看标题是Time Base,因为之前接触得少,所以查阅的一些资料,里面主要用到的几个函数如下:

IF(expr1,expr2,expr3)

If expr1 is TRUE (expr1 <> 0 and expr1 <> NULL), IF() returns expr2. Otherwise, it returns expr3.

SLEEP(duration)

Sleeps (pauses) for the number of seconds given by the duration argument, then returns 0. The duration may have a fractional part. If the argument is NULL or negative, SLEEP() produces a warning, or an error in strict SQL mode.

这两个是基于时间注入最重要的两个函数,最后得出payload代码:

and 1' and if(ascii(substr([获取到相应的信息函数],[第几个字符],1))=[猜测的字符],1,sleep(5)) and '1'='1

总结: 1、判断是否正确的标准是是否执行了延时函数sleep(timeout),我们例子中的是错误的时候延时,则没有延时的时候为正确的。 3、使用猜测的方式尝试猜解出相应的信息(也叫爆破),不是直接查询出来的。

0x05 Less 10(基于时间盲注-双引号)

和Less 9唯一不同的点就是单引号换成双引号。 payload:

and 1" and if(ascii(substr([获取到相应的信息函数],[第几个字符],1))=[猜测的字符],1,sleep(5)) and "1"="1
转载请注明原文地址: https://www.6miu.com/read-29892.html

最新回复(0)