极客大作战—hard SQL
考察对sql特殊字符与函数的绕过
尝试一下单引号报错
注释符无效 应该是被过滤了
#为被过滤但是无效。。看来只能手动闭合username处的引号 构造语句后面加and ‘1
Admin’ and ‘1发现有字符被抓到了,不是空格就是and
空格去掉发现and被过滤
And用异或^代替,成功绕过
测试空格是否被过滤,果然被过滤了
用/**/注释符无法绕过空格
那就用()代替空格。。
接下来用报错注入,可以查到版本号
查询数据库 geek
查询表时发现又有字符被过滤,空格已经用()绕过了,特殊字符猜测是=,用like成功绕过,查到表H4rDsq1
爆字段
发现Flag显示不完全,因为update限制返回长度 flag{aa77b426-8da9-458b-abb0-31
用字符串截取函数mid截取第28个字符开始后面的字符
Mid被过滤
Substr也被过滤,substring也是
Right截取最右边31个字符,没有被过滤
26-8da9-458b-abb0-31108f475251}
拼一下得到flag
flag{aa77b426-8da9-458b-abb0-31108f475251}