攻击者利用应用程序对用户输入验证不足的漏洞,将精心构造的SQL语句片段插入到应用程序与数据库交互的正常语句中。比如,原本应用程序执行的查询语句是“SELECT * FROM users WHERE username = '正常用户名'”,攻击者通过在输入框中输入“正常用户名' OR 1=1 --”,这样修改后的语句就变成了“SELECT * FROM users WHERE username = '正常用户名' OR 1=1 --”。“OR 1=1”这部分使得无论用户名是否正确,条件都永远成立,而“--”是SQL注释符,后面的内容会被数据库忽略,从而导致攻击者可以获取数据库中的所有用户信息。