刚刚看了个视频里面提到了sql注入漏洞有点不明白
好像是说
用select * from users where username='bba' and passwd='bnb';
一条记录也查不到
然后用select * from users where username='bba' and passwd='bnb' or 1='1';
所有的记录就都查到了但是我想,在用户登录的时候我也只能传递一个用户一个密码,又修改不了sql语句,那么这漏洞又是怎么来的?什么原理?
好像是说
用select * from users where username='bba' and passwd='bnb';
一条记录也查不到
然后用select * from users where username='bba' and passwd='bnb' or 1='1';
所有的记录就都查到了但是我想,在用户登录的时候我也只能传递一个用户一个密码,又修改不了sql语句,那么这漏洞又是怎么来的?什么原理?
= ?"); ps.setUsername("")
ps.setPasswd("")
ResultSet rs = ps.executeQuery();
应该在密码输入bnb' or '1'='1,最前跟最后那个单引号不要
那么服务端拼接sql的时候由于传到后台的password为 "bnb' or '1'='1"
sql = "select * from users where username='" + username + "' and passwd='" + password + "';"
sql 就变成 select * from users where username='bba' and passwd='bnb' or 1='1'; 了
运用 or 或者 -- 蒙混过关