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

 

 

posted @ 2021-11-01 21:18  微草wd  阅读(58)  评论(0编辑  收藏  举报