
4个回答
展开全部
比方说,你要登陆某个系统,在你不知道账户名和密码的情况下,可以通过这种方法来登陆系统.
原来的查询语句可能是这样的:
select name from user where userid= :userid and password=:password
:userid ,:password 是你输入的用户名和密码
有注入漏掉的话就会变成这样:
select name from user where userid= :userid and password=:password or 1=1
你加了or 1=1 后,不管用户名和密码是否正确,这个sql 都为真. 然后就可以登陆到系统里面去.
还可以做一些破坏性的动作.例如加delete语句什么的
原来的查询语句可能是这样的:
select name from user where userid= :userid and password=:password
:userid ,:password 是你输入的用户名和密码
有注入漏掉的话就会变成这样:
select name from user where userid= :userid and password=:password or 1=1
你加了or 1=1 后,不管用户名和密码是否正确,这个sql 都为真. 然后就可以登陆到系统里面去.
还可以做一些破坏性的动作.例如加delete语句什么的
展开全部
有些网站写与数据库交互的语句的时候,选择的是直接传递SQL语句到数据库,这种情况下,你在后面添加 or 1 = 1就相当于修改了客户端传输的sql语句,将该条语句变为了一个恒真语句,所以就可以任意连接修改数据库了,在sql注入时,若输入 or 1 = 1这种只能简单的判断网站的传输机制有没有问题,即使通过修改传值方式避免了这种注入,还可以通过其他的方式进行SQL注入。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是加入 or 1=1,or的条件判断 false or true =true ;1=1为true,则忽略了之前的条件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
x & 1=x
x & 0= 0
当加1=1 时,前后结果应该一样,不一样就出错了
加1=2 时,应该没有数据,如果有数据就错了
x & 0= 0
当加1=1 时,前后结果应该一样,不一样就出错了
加1=2 时,应该没有数据,如果有数据就错了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询