[GXYCTF2019]BabySQli(WP)

今天不是很舒服,脑子不是很清醒,wp将就看

页面很简单,首先尝试注入点。

我第一次试了了admin;123456这一组合。页面跳转到

意思是我的密码错误。

我第二次尝试了123456;123456的组合

意思很简单,就是说我用户名错了,这里就很明显了,用户名确实是admin但是密码肯定不是12356.这里我卡了很久才想到去查看源码

f12发现search.php页面有一个提示信息—MMZFM422K5HDASKDN5TVU3SKOZRFGQRRMMZFM6KJJBSG6WSYJJWESSCWPJNFQSTVLFLTC3CJIQYGOSTZKJ2VSVZRNRFHOPJ5

这是什么意思?

在当时我还并没有用burp解码,后来复现的时候才发现在burp里面显现出来的编码就是一串base32位编码,因为带有==号我肯定能直接做下去不会卡壳,当时也因为对base64不敏感而导致我需要去看别人的wp

先base32解码出来c2VsZWN0ICogZnJvbSB1c2VyIHdoZXJlIHVzZXJuYW1lID0gJyRuYW1lJw==

这里就很果断了,带有=号而且大小写都有那肯定是base64了,继续解码

select * from user where username = ‘$name’

这是什么意思呢?这会对我们输入的用户信息和密码进行初步判断,要继续下去就需要用burp了,登录页面抓包

这是什么意思?原来我们上传的参数名是name和pw,那我们一会儿要在hackbar里面构造的函数就是name和pw,这里可以猜测它的判断方式是依次判断,当输入的用户名错误时报错wrong user,当用户名正确但是密码错误时就会显示wrong pass。这意味着我们需要改的就是对用户联合查询构造虚拟查询记录进行登录

name=’ union select 1,’admin’,’ares’#&pw=ares

但是测试错误,为什么?因为数据库里面放的数据是加密过的,而且根据经验一般都是md5,那么编码之后就可以上传了

这道题考察的知识点很多,我认为还有很多提升的空间,暂时先说到这里

发表评论

蜀ICP备2022010829号