[GXYCTF2019]BabySQli
试了一下发现过滤了and,or,order,(),但可以大写绕过
试了一下Order by 3#可以,但是union select 1,2,3#也没有回显,到这里就卡住了
原来search.php的源码里有提示

base32编码由大小写字母和数字组成,base64只由大写字母和数字组成,所以这是base32。解密后得到一串base64加密过的字符串,再解密后得到
select * from user where username = '$name'
这里用的知识点是联合查询在MySQL中查询不存在的数据时,会构建一个虚拟数据。payload是1' union select 1,'admin','698d51a19d8a121ce581499d7b701668'#
698d51a19d8a121ce581499d7b701668是’111’经过MD5加密后的字符串。通过这个联合查询我们会在数据库里加入一条id=1,username=admin,password=698d51a19d8a121ce581499d7b701668的数据。在password一栏里输入111,得到flag
本文讲述了在GXYCTF2019挑战中,作者发现了一个SQL注入漏洞,通过绕过特定字符过滤并利用联合查询技巧,成功在MySQL中插入伪造数据,最终获取到flag。关键知识点包括base32编码、base64解密、SQL注入技巧以及联合查询的原理。
1万+

被折叠的 条评论
为什么被折叠?



