前言:时间型的注入遇到的条件更为苛刻,数据交互完成以后目标网站没有错误和正确的页面回显,这种情况我们可以利用时间函数来判断数据有没有在目标数据中得到执行。当然也需要构造闭合
这两关需要用到的函数:
函数名称 | 函数说明 |
---|---|
sleep (s) | 静止s秒、数字类型,可自定义 |
if(逻辑表达式,返回值1,返回值2) | if判断语句 |
来到第九关:
http://192.168.89.131/sqli-labs-master/Less-9/
当我们正常的测试语句似乎没有任何效果时。我们根据总结的注入类型,判断为盲注,如果不知道点击这里
http://192.168.89.131/sqli-labs-master/Less-9/?id=1%27%20and%20if(1=2,1,sleep(4))%20–+
通过上面的测试,确实存在时间盲注,那我们就利用盲注的sql语句加时间盲注继续进行注入,通过if条件真假返回的判断
这句话意思就是 如果条件成立,就停止4秒,否者就返回null
判断数据库长度
http://192.168.89.131/sqli-labs-master/Less-9/?id=1%27 and if(length(database())>n,sleep(4),0) --+
不断变化n的值看延迟变化,最终判断数据库长度。
继续深入的研究,这里我就直接贴后面的语句了,不做测试了, 获取表名语句;
反正盲注是很繁琐不断去猜解建议用sqlmap去跑
第十关:
十关是同样的道理,只是采用的双引号闭合,按照上面的方面闭合后一样的进行测试
本文章为自己搭建实验环境做过的,参考过一些资料,希望对你有帮助