sqli-labs闯关----1-4关详解
了解知识
- 数据库进行查库、查表、查字段、查字段信息的语句(此处以表security下的users为例)
- show databases;查看所有的数据库,等同于select schema_name from information_schema.schemata;
- show tables;同样也可以在information_schema中查看,select table_name from tables where table_schema=‘security’;
- 查users下的字段 select colum_name from information_schema.colunms where table_name=‘users’;
- 查user下的username和password字段信息 select username,password from security.users;
- 基本函数作用及使用
- order by 对查询的数据进行排序,我觉得也可说成查询字段的数量了解orderby
- union 联合语句,就是查看可以插入的位置了解union语句
- group_concat :group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符’])
将group by产生的同一个分组中的值连接起来,返回一个字符串结果 - concat_ws : concat with separator,即有分隔符的字符串连接,第一个参数是其它参数的分隔符,分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。但是CONCAT_WS()不会忽略任何空字符串,会忽略所有的 NULL。
第一关
看源码
根据提示输入id
得到用户名和密码
查看是否有注入点
注释之后得到用户名和密码,证明可能有注入点
再确认一**入点
证实了有注入点之后看有多少字段,利用二分法先10,5,3,2,4这样
3和4返回不同,所以证明字段数量是3
接下来利用union语句查询,利用查库查表查字段查字段信息的语句
记得将union前面的id变成一个不存在的数字
这就好啦
第二关
看源码
查看是否有注入点
判断字段数量
联合查询
之后就是查库表字段啦,跟第一关相同的
第三关
看源码
查看是否有注入点
后面的不重复啦
第四关
OK