buuctf-[GXYCTF2019]BabySQli WP(小宇特详解)

buuctf-[GXYCTF2019]BabySQli WP(小宇特详解)

这里先看一下源码

buuctf-[GXYCTF2019]BabySQli WP(小宇特详解)_第1张图片

查看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小皮版

我先创建了一个数据库,然后里面的表的内容如下

buuctf-[GXYCTF2019]BabySQli WP(小宇特详解)_第2张图片

然后进行查询

select * from user where username='0' union select 0,'admin','670b14728ad9902aecba32e22fa4f6bd'

buuctf-[GXYCTF2019]BabySQli WP(小宇特详解)_第3张图片

这里直接生成了一个虚拟数据

利用这个原理构造payload

username:'union select 1,'admin','670b14728ad9902aecba32e22fa4f6bd'#
password:000000

你可能感兴趣的:(buuctf,安全,php,web安全)