万能密码:'or 1=1–
用户名随便输入,密码填写这个,输入验证码,ok,大功告成
直接就登录成功了,不论他设置的是什么密码,都可以直接登录进去
- 那么这是为什么呢?
一般没有进行SQL语句参数化的登录语句是这样的
Select * From 用户表 Where UserName=xxx and Password=xxx
然后判断返回的行数,如果有返回行,证明账号和密码是正确的,即登录成功,而这样的语句的话,就很容易被注入代码,也就是在登陆的SQL语句中添加一段代码,例如直接在密码框输入【’or 1=1–】,那么它的登录语句就会变成
Select * From 用户表 Where UserName=xxx and Password=xxx or 1=1–
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫