- sql注入
- union覆盖数据
做了半天才发现网页源码有提示,跟我之前猜测的一样
因为他的user和name是先后判断的,所以应该是先对应用户名查数据,再进行比较
他的查询语句为
select * from user where username = '$name'
只有用户名为admin的时候才会爆密码错误,所以用户名应该就是admin
在用单引号的时候会报错,猜测为单引号闭合
fuzz出过滤项
or
xor
(
)
=
'1'='1
oorr
floor
rand()
information_schema.tables
concat_ws()
order
CAST()
format
ord
for
=
然后无意中对pw传数组,发现我们输入的数据是先md5计算再和查询的数据进行比对

然后判断字段数,来用union进行伪造假用户
判断字段数为3
然后就是一个个试用户名和密码在哪个字段里了
发现只有第二个字段为admin时才会爆用户错误

所以第二个就是用户名了
密码就试试就出来了
payload:
name=admi' union select 1,'admin','c4ca4238a0b923820dcc509a6f75849b'#&pw=1

为什么我密码传数组没有爆出 md5
密码是怎么试出来的哇