SQL注入就是指web应用程序对用户输入数据的合法性没有判断,前端传入后端的参数是攻击者可控的,并且参数代入数据库查询,攻击者可以通过构造不同的SQL语句来实现对数据库的任意操作。
当我们进入登陆页面的时候,会输入账号和密码,网站会运行下面的sql语句,当账号username和密码password正确时,会登录成功。
select * from users where username='name' and password='pwd';
select * from users where username='' or 1=1 #' and password='';
sql语句中,#表示注释。username='' 为假,1=1为真,假or真=真,所以这条sql语句可以正常运行。
上面的语句等价于
select * from users where username='' or 1=1;
而这条语句中,我们并不需要知道这个网站的账号和密码,便可以实现绕过登录框,直接进入网站的效果。
https://www.mozhe.cn/bug/detail/RktjK0hPMDJIUlZMVjVFb3BDcWphZz09bW96aGUmozhe