BUUCTF [web专项30][GXYCTF2019]BabySQli

打开后发现是个登录界面

尝试各种万能钥匙

发现都是这个

查看当前页面源码

发现好像是个加密后的字符串

解密一下

经过测试解码,解码顺序是:base32解码->base64解码

 

发现这是一句用来查询 我们提交的用户名的数据(应该没什么操作空间)

选择测试一下是什么类型的

数字:

单引号:

 单引号可用,那就先查一下列

发现依旧报错,那就双写试试

双写绕过也错误,那就换个联合查询看看能不能查出来

发现出现了新的错误提示

Error: The used SELECT statements have a different number of columns

可以使用union select来查询列数,那就再次增加列数来尝试

最终发现密码错误的提示

那就一共三列

尝试一下爆库

发现还是报错

应该有什么被过滤掉了

参考:

【精选】BUUCTF--[GXYCTF2019]BabySQli详解-CSDN博客

我的思路是去用union select查询列数,然后尝试username在哪个列,然后再注入临时用户数据

现在测试username在那个列

第一列:

用户错误,不对

第二列:

 

密码错误,username就在第二列

尝试注入临时用户数据

name=1' union select 1,'admin','202cb962ac59075b964b07152d234b70'#&pw=123

注意:这里的第三列用的是123进行md5转换后的数据,因为

mysql在查询不存在的数据时会自动构建虚拟数据,一般数据要么明文,要么MD5

修改放包后即可获取flag

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值