[GXYCTF2019]BabySQli

打开题目

 

 只有登录框,试了一下1,1

报用户名错误,然后试了一下admin,1

 

 报密码错误,然后查看源码的时候发现了一段编码

 

 看着像base的编码,试了试base64没结果,试了一下base32出了base64

 

 

 

 解码完成后给了一段sql语句,之后就没有思路了,就去找大佬的wp了。

小知识:

下面用一下大佬的图片(介意的话可以私信我删了)

 

 

 

 用联合查询的时候会生成一个虚拟的表数据,所以我们就可以通过这样来更改自己想要的密码。

因为题目已经提示了这里有sql注入,所以我们直接判断列数

admin' order by 5#

 

 回显不要攻击我,说明这里存在过滤。

然后就多试了几次,发现是过滤了order,换成大写就可以绕过。

列数又不对,就换成了3。

admin' ORDER by 3#

 

 后面就利用联合查询,最后得知第二列是用户名,第三列是密码。

payload:

1 username:1' union select 1,'admin','202cb962ac59075b964b07152d234b70'# 
2 password:123

密码有用md5加密,题目没有提示,需要一点经典,一般密码都会进行MD5加密。

posted @ 2022-05-16 22:37  lpiz  阅读(51)  评论(0)    收藏  举报