buuctf:[GXYCTF2019]BabySQli
打开链接
只给了个登录界面
先简单测试一下
username输入admin时,会显示wrong pass
输入其他会显示wrong user
然后查看源代码,发现了一串字符。
经过base32和base64解码得到sql语句
用Order by来查询有几列
证明有3列
利用联合查询临时插入数据:
select * from user where uname='12' union select '1','2','3';
此时查询结果出了12那一行,还会多出一行联合查询的字段,作为数据临时插入。
利用这个特性,首先随便选一个密码例如1,md5加密后用它作为临时密码插入。
由于username必须是admin,所以我们可以利用联合查询临时插入一个admin的数据
构造playload:
username:1' union select 1,'admin','c4ca4238a0b923820dcc509a6f75849b'#
password:1
c4ca4238a0b923820dcc509a6f75849b是1md5加密值
这样查询的时候会自动查询到数据库中我们构造好的username为1,password为1这一行,这样我们就能够成功登录,获得flag