一、SQL注入的概念
SQL注入其实是恶意攻击者,将SQL或者字符作为参数输入,服务器在验证这个字段的时候,读取攻击者输入的数据,将其作为正常的值参与SQL语句的查询,从而达到删表或者获取数据库信息等目的。
二、SQL注入的条件
参数中含有SQL语句,并可以带入数据库正常执行;
WEB应用和数据库交互时,必须携带参数传递至数据库;
例如:
POST请求体中的参数
GET请求头URL中的参数
Cookie
三、SQL注入的几种场景
1、字符串型注入
场景1:假设登陆后台的校验逻辑为:从数据库查询对应用户名和密码,存在返回值验证通过。这种情况在用户名输入框输入OR 1 = 1 OR '1' = '1'
,密码为空,则猜测可构造如下SQL语句绕过后台校验登录系统:
SELECT * FROM usertable WHERE username = '' OR 1 = 1 OR '1' = '1' AND password = ''