[GXYCTF2019]BabySQli 1

本文探讨了SQL联合注入的原理,通过一个解题实例展示了如何利用注入点插入自定义数据。在解密过程中,区分了Base32和Base64的特点。通过输入特定payload,成功构造了联合查询,从而获取了flag。内容涉及到Web安全、SQL注入和编码解密技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

知识点:联合注入插入自定义数据,找注入点

注入原理:

在使用联合注入时,如果我们查询的数据不存在,这时就会把我们所查的数据放入一个新的容器里。

从下图可以看出,本来root,123456是不存在的,但再联合查询中插入到里面了。
我们可以通过这种方法来插入我们想要的数据。
在这里插入图片描述

在这里插入图片描述

解题:

突破口:

输入万能密码(username=admin,password=password),提示密码错误,看下源码
在这里插入图片描述
在这里插入图片描述
有一串base32加密字符串,我们把他解密后,在base64解密

select*from user where username = '$name'

怎么区分base32和base64呢?

base32——一般以大写英文字母和数字,或者末尾有三个等于号
base64——一般以大写、小写英文字母和数字,或者末尾有两个等于号

找注入点

我们输入账号为admin,不管密码是什么,都显示wrong pass,
而当账号为其他时,都显示wrong user,所以我们可以猜测账户名为admin,但我们不知道密码,我们可以通过联合注入 来插入一个账号为admin,密码随便,但密码要MD5加密一下,因为…没啥原因,其他大佬说是经验

构造payload

username:
1' union select 1,'admin','e10adc3949ba59abbe56e057f20f883e'#
//e10adc3949ba59abbe56e057f20f883e为123456MD5加密
password:
123456

登录,得到flag
在这里插入图片描述

参考:

高诺琪.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值