[GXYCTF2019]BabySQli

1.首先随便输入admin,666.显示wrong pass,查看源码有一个base32加密的字符串

image-20211221145655707

2.解密后是一串base64,再解码得到select * from user where username = '$name' 这个提示告诉了他只去select了username;

3.使用联合查询,发现下面的语句是正确的,可以知道数据表有三列

image-20211221150226543

4.再用name=1' union select ‘admin’,2,3%23&pw=1来一个个位判断,admin在2位

5.直接name=1' union select 1,‘admin’,3%23&pw=1,怎么尝试都是wrong pass,查看题目给的源码可得,密码被进行了MD5加密

image-20211221150647099

6.可以用联合查询的技巧:在联合查询并不存在的数据时,联合查询就会构造一个 虚拟的数据

于是构造一下语句,使虚拟数据混淆admin密码,得到答案

1' union select 1,'admin','202cb962ac59075b964b07152d234b70'%23&pw=123 前面字符串是123的MD5加密

image-20211221151034124



posted @ 2022-01-19 14:27  L0VEhzzz  阅读(80)  评论(0编辑  收藏  举报