sqli-labs--第一关

判断是否存在注入点

 ​​​​​​发现页面显示有问题,可能存在注入点 

 判断注入点类型

sqli-labs--第一关_第1张图片

由报错信息可以看出,输入参数多了一个',初步判断是单引号字符型注入

sqli-labs--第一关_第2张图片

sqli-labs--第一关_第3张图片

由接下来的两步可以确定是单引号字符型注入

猜测字段数(order by) 

sqli-labs--第一关_第4张图片

sqli-labs--第一关_第5张图片

猜测当前表中有3列

判断数据显示位置(利用union select)

 注意:我们构建union select语句时,当前面的查询语句为假,也就是数据不存在时,union select之后查询出的结果就会显示在页面中。这里我们可以通过在前面查询语句中添加 and 1=2 使语句变假,也可以直接将id传入一个负数,来使语句变假。sqli-labs--第一关_第6张图片

 如图可以看出显示字段为2,3

信息收集

数据库名:database();

数据库用户:user();

操作系统版本:@@version_compile_os

数据库版本:version();

数据库路径:@@datadir;

sqli-labs--第一关_第7张图片

sqli-labs--第一关_第8张图片

sqli-labs--第一关_第9张图片

 得到

数据库名:security;

数据库用户名:root@localhost;

操作系统版本:Win64

数据库版本:5.7.26;

数据库路径:E:\site\phpStudy_64\phpstudy_pro\Extensions\MySQL5.7.26\data\;

通过指定数据库名得到库中表名

sqli-labs--第一关_第10张图片

security数据库中有emails,referers,uagents,users四张表

group_concat函数能将相同的行组合起来 

注意:information_schema.tables中表示数据库名的列名为table_schema

           information_schema数据库中存储所有数据库名的表名为SCHEMATA

通过指定表名得到表中列名

sqli-labs--第一关_第11张图片

security数据库users表中列有id,username,password 

得到数据

sqli-labs--第一关_第12张图片

得到用户名和密码!!! 

你可能感兴趣的:(sqli-labs,sql,数据库)