Select * from T_User where UserID =’txtUserID.Text’andPassword=’ txtPassword.Text ’
其原理是通过查找T_User 表中的用户名(UserID) 和密码(Password) 的结果来进行授权访问, 在txtUserID.Text为mysql,txtPassword.Text为mary,那么SQL查询语句就为:
Select * from users where username =’ mysql ’ and password =’ mary ’
如果分别给txtUserID.Text 和txtPassword.Text赋值’ or ‘1’ = ‘1’ --和abc。那么,SQL 脚本解释器中的上述语句就会变为:
Select * from T_User where UserID =’’or ‘1’ = ‘1’ -- and Password =’abc’
该语句中进行了两个条件判断,只要一个条件成立,就会执行成功。而‘1‘=‘1‘在逻辑判断上是恒成立的,后面的"--" 表示注释,即后面所有的语句为注释语句这样我们就成功登录。即SQL注入成功.
原来SQL语句:insert into category(name) values(‘”+caName+”’)
输入框中输入:caName=娱乐新闻’)select category --‘)
SQL语句变成:insert into category(name) values(‘娱乐新闻’)Select category --‘)
SQL语句改变后,将执行插入和查询两个操作(如果修改的不是查询而是删除将会更加可怕),即SQL注入成功。