SQL注入是一种代码注入技术,用于攻击数据驱动的应用程序。 在应用程序中,如果没有做恰当的过滤,则可能使得恶意的SQL语句被插入输入字段中执行(例如将数据库内容转储给攻击者)。
26.1. 按技巧分类
根据使用的技巧,SQL注入类型可分为:
- 盲注
- 布尔盲注:只能从应用返回中推断语句执行后的布尔值
- 时间盲注:应用没有明确的回显,只能使用特定的时间函数来判断
- 报错注入:应用会显示全部或者部分的报错信息
- 堆叠注入:有的应用可以加入
;
后一次执行多条语句 - 其他
26.2. 按获取数据的方式分类
另外也可以根据获取数据的方式分为3类
- inband:利用Web应用来直接获取数据,如报错注入,这类注入都是通过站点的响应或者错误反馈来提取数据。
- inference:通过Web的一些反映来推断数据,如布尔盲注,也就是我们通俗的盲注, 通过Web应用的其他改变来推断数据。
- out of band (OOB):通过其他传输方式来获得数据,比如DNS解析协议和电子邮件。
下一节:本文介绍了常见的注入点及检测方法。