sqli-labs之Less-9讲解(基于时间盲注-单引号)

前言:这道题其实设置的有点古怪,无论你是否构造语句正确与否,都会只返回给你 You are in...........,所以你很难知道你是否闭合成功语句以及SQL语句是否执行成功,这里就需要依靠时间延时来进行判断了。

1.构造语句

?id=1' and if(1=1,sleep(0),sleep(5)) --+

上面这句话的意思就是,如果1=1这条SQL语句执行成功,那么久实行sleep(0)休眠0秒,如果1=1这条SQL语句执行错误,那么就执行sleep(5)休眠5秒,以此来进行判断SQL语句是否执行成功。这里的1=1,其实在下面就可以更换为我们想要执行的其他SQL语句。
sqli-labs之Less-9讲解(基于时间盲注)
从上面图中可以看到,当我们执行了一条正确的SQL语句时,浏览器很快就会返回结果,耗时一秒多,耗时绝对不会超过5秒。
sqli-labs之Less-9讲解(基于时间盲注)
而当我们执行了一条错误的SQL语句时,浏览器会一直转圈转圈加载5秒之后执行,共计耗时6秒多,耗时绝对超过5秒。
由此我们就可以构造我们的payload了,通过执行时间长短来进行判断构造的SQL语句是否执行正确。

2.布尔盲注

这道题说到底还是布尔盲注方向的,只不过是有了更多的限制条件了,其实跟前面的这篇文章《sqli-labs之Less-5讲解(布尔类型注入-单引号)》其实是一样的,基本无任何差别,建议参考一下,看看基础知识。
最后附上Python脚本,因为这种题目没有人是真正完全靠脑子去猜测的,都是脚本跑的。
Github:基于时间的布尔盲注

发表评论

电子邮件地址不会被公开。必填项已用 * 标注