原创社会我猪哥
图文讲解
我们这里以简单的一个登录框为例,这里如果是最原始的SQL语句写法
我们可以看到是通过验证用户名和密码是否同时为真,最终登陆成功的
SELECT * FROM users WHERE username='admin' AND password='password123'
如何检测可能存在以上的注入点?我们可以在用户名后添加一个',查看是否存在SQL语法错误,如果存在,则可以使用下面的方式进行绕过登录!
思路一:’OR 1=1
我们通过'OR 1=1的方式,重新频接语句
我们知道在SQL语句中,语法优先级首先是AND,然后是OR
那可以这么看
username = ‘admin’ OR ‘1’ = ‘1’ AND password=’password123′
实际上的执行顺序是
( username = ‘admin’ AND password=’password123′ ) OR ‘1’=’1′
‘1’=’1’是永真的,OR 永真则这个语句永真,所以不管你用户名、密码咋输入,都能登录成功




举报 0