[GXYCTF2019]BabySQli

进入题目后是一个登录框,

我先试了一下

用户名:admin 密码:admin

然后进入了search.php页面跟我说我密码错误(好家伙,我看了别人的wp,他们都是先进行注入,可能我比较菜还没有这种习惯)

查看源码给出提示

MMZFM422K5HDASKDN5TVU3SKOZRFGQRRMMZFM6KJJBSG6WSYJJWESSCWPJNFQSTVLFLTC3CJIQYGOSTZKJ2VSVZRNRFHOPJ5

发现这是base32加密,解码后发现又是一段base64编码

所以知道了sql语句为select * from user where username = '$name',然后用联合查询测试一下字段数

两个字段的时候报错

然后测试一下三个字段没有报错

然后测试一下用户这个字段在哪一个字段当中

1' union select 'admin',2,3#

用户错误,不是我要找的

1' union select 1,'admin',3#

密码错误,所以第二个字段是user字段

然后查看wp知道是MD5加密,接下里就是要绕过密码的md5验证,需要把我们输入的值和数据库里面存放的用户密码的md5值进行比较,可以用联合查询语句用来生成虚拟的表数据。

我们可以利用联合查询来创建一行admin账户的续集数据,混淆admin用户的密码,将我们自定义的admin用户的密码(123)加进去,这样我们就可以登录admin用户了

在用户名登录框输入

1' union select 1,'admin','202cb962ac59075b964b07152d234b70'#

其中202cb962ac59075b964b07152d234b70为123的MD5值,然后在密码登录框中输入123即可登录。

posted @ 2021-11-08 13:07  懒癌·晚期患者  阅读(39)  评论(0编辑  收藏  举报