Sqli-LABS通关笔录-2
在这个关卡学习到了 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语句,即可以成功执行。 这里需要理解的是 单引号的错误 和 负号的错误 是什么概念。 单引号的错误是指语法错误 负号的是因为不存在而提示的错误 如此知道了缘故那么继续操作哈。 来源: http://www.cnblogs.com/xishaonian/p/6103230.html