提示提交id值,用单引号试一下,报错:
猜测id值在查询语句中被单引号包裹。
接下来用order by测字段数 测出3个字段。
然后看当前的数据库,构造payload:http://127.0.0.1/sqli-labs-master/Less-1/?id=1' union select 1,1,database() %23
给我返回了这个id=1的值:
要执行union后的语句就要让union前的查询语句不正确,加个and 1=0:
数据库名字知道了,爆表:
只能显示第一个,这就比较坑了,看了源码发现是有limit 0,1 不过被我%23注释掉了啊...
原来是这个mysql_fetch_array的问题,它从结果中只取一行。
使用group_concat()这个函数,能把这个字段的所有行的结果连在一起返回。
实际上这个函数是与group by配套使用的,但是咱们的语句没有用group by,没有依据哪个字段分组,就把所有字段都连在一起了,详情见:点击打开链接
然后就是爆列名,需要注意的是,爆users这个表,where条件table_name=后面要用users的十六进制,users十六进制是0x7573657273
然后看内容就可以了: