漏洞成因
当数据库进行查询时,会自动将空格去除掉
演示
SELECT * FROM `user` WHERE username = 'admin1'
SELECT * FROM `user` WHERE username = 'admin1 '
在数据库中分别执行上面两条SQL语句,很明显,第二条SQL语句后面多了空格,查看结果
可以发现返回了相同的结果,同理如果在添加时(比如注册用户时)在用户名后面添加过多的空格(尽量多加),然后再查询用户名为admin1的用户,发现出现了两个账号,那么可以用我们设置的密码来登录