[GXYCTF2019]BabySQli

web第29题
[GXYCTF2019]BabySQli

打开靶场:
在这里插入图片描述
源码:
在这里插入图片描述
一个简单的登录页面,首先直接尝试输入单引号’
在这里插入图片描述
报错,那必然存在sql注入
永真式进行登录
在这里插入图片描述
在这里插入图片描述
得到这个页面,在源码中发现一个像是加密后的数据,在解码器中进行解码尝试
在这里插入图片描述
得到base32解码出来的文本很像base64加密后的数据,进行二次解码
在这里插入图片描述
果然有发现,给出了查询的语句,从user表中查询username为表单中提交的用户名的数据,应该就是页面回显的内容
永真式登录失败说明做了过滤,尝试双写绕过
在这里插入图片描述
在这里插入图片描述
依然失败
直接fuzz一波:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相应为419的就是被过滤的,415的没有
得到一些被过滤的字符:or,xor,(,),=,oorr,floor(),rand(),information_schema.tables,concat_ws(),order,CAST(),format,ord,for等

并且发现用户为admin时返回的是wrong pass,也就是说admin可能就是我们需要的用户

尝试了很多的绕过依然没成功,做到这里思路已经不够了,看了一下wp
发现虽然order被禁了,还可以使用联合查询猜解字段数(呜呜这都没想到)

admin' union select 1,2 #

在这里插入图片描述

admin' union select 1,2,3 #

在这里插入图片描述
没报错!说明字段数为3

然后猜解usernmae是第几个字段

1' union select 'admin',2,3 #

在这里插入图片描述
提示用户错误,那说明username不在第一个字段

1' union select 1,'admin',3 #

在这里插入图片描述
提示密码错误,说明username就是第二个字段

做到这里的思路就是使用联合注入创建一条临时数据
参考这位佬的wp:[GXYCTF2019]BabySQli(联合注入添加临时虚拟用户)

payload:

name=1' union select 1,'admin','c4ca4238a0b923820dcc509a6f75849b'#&pw=1

意思是插入一条临时的数据admin,密码为md5加密后的1,然后密码为1,就会自动登陆上了
在这里插入图片描述
这题就当扩展知识面了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值