C/C++教程

buuctf:[GXYCTF2019]BabySQli

本文主要是介绍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

 

 

这篇关于buuctf:[GXYCTF2019]BabySQli的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!