使用SQL注入前
在日常界面用户登录过程中通常是这样的
输入用户名“username”
输入密码“password”
SQL注入语句编写如下
$sql=select * form user where username='username' and password='password'
当我们输入相应正确的用户名和密码时,就可以登陆进去,错误的,时无法登陆的。但是这个验证机制可以通过SQL语句来构造一个特殊的”字符串“通过验证。
当我们在用户名处输入' or 1=1#,密码随便写,就可以登陆进入网站
使用SQL注入后
将' or=1=1#代入语句
$sql=select * form user where username=' 'or 1=1# and password=' 'or 1=1#
在SQL语句中#是注释符,所以后面的语句都会被注释掉,那么上面的语句就等价于:
select * from user where username=' ' or1=1
在SQL语句中where相当于判断语句,并且是由 or 连接的,所以 username=’ ‘ 和 1=1 中有一个为真就为真。1=1一定为真,所以语句又等价于:
select * from user
也是buuwab第一题“easySQL”的题解
标签:语句,username,万能,SQL,password,where,select From: https://www.cnblogs.com/Infinite-Ting/p/16931211.html