安装好的sqli-labs,打开第一关
1、这里提示输入一个ID参数
2、给ID参数后,会有返回值
我们是在URL给的参数值,可以判断出是GET型请求。
3、通过加引号判断是整型还是字符型,报错提示多了一个单引号,判断出是字符型。
4、因为输入的时候多加了个单引号进项闭合,所以多出的单引号需要注释掉,才能正常显示。
5、判断出字符型还是数字型之后,使用order by 0判断输出列数有几列,这里推荐对折法,比如2,4,8,正常显示就继续加,出现错误就往下降,这里显示只有3列,第四列会出错。
6、判断出有几列之后,使用联合查询(union select)判断输出点在哪里,为了保证可以看到输出位置,可以把id参数修改成一个不存在的输出位的数
7、找到输出位之后使用联合查询进行Sql注入,这里推荐将查询的内容使用group_concat进行包裹,可以把查询到的内容集合到一行输出,默认只输出一行,查询到敏感表users,在查询到内容中进行寻找敏感表,没有的话使用笨方法,一个一个看
这里库名直接用database()代替,意思是当前库
union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() %23
8、这里查询到一个users表,持续进行注入,将查询到的users表添加到查询条件里面
union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' and table_schema=database() %23
9、查询到敏感字段有username和password,最后用查询到的字段查询表中有那些数据,可以在两个字段直间加上下划线进行区分
union select 1,group_concat(username,'_',password),3 from users %23
注:本人菜鸟一个,有什么问题请大佬指出,谢谢