SQL注入简介——堆叠注入
(一)SQL注入的概述和分类
1.概述
首先说,什么是SQL注入?
程序员在开发用户和数据库交互的系统时没有对用户输入的字符串进行过滤、转义、限制,或者处理不严谨,导致用户可以通过输入精心构造的字符串去非法获取到数据库中的数据,这一构造字符串非法获取数据的过程就被称为SQL注入。
2.分类
(参考来源: link.)
①按照数据提交的方式来分类:
(1)GET 注入:提交数据的方式是 GET , 注入点的位置在 GET 参数部分。比如有这样的一个链接http://xxx.com/news.php?id=1 , id 是注入点。
(2)POST 注入:使用 POST 方式提交数据,注入点位置在 POST 数据部分,常发生在表单中。
(3)Cookie 注入:HTTP请求的时候会带上客户端的Cookie, 注入点在Cookie当中的某个字段中。
(4)HTTP 头部注入:注入点在 HTTP 请求头部的某个字段中。比如存在 User-Agent 字段中。严格讲的话,Cookie 其实应该也是算头部注入的一种形式。因为在 HTTP 请求的时候,Cookie 是头部的一个字段。
②按照执行效果来分类:
(1)基于布尔的盲注:即可以根据返回页面判断条件真假的注入。
(2)基于时间的盲注:即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
(3)基于报错注入:即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。如:单引号、双引号、基于数字型注入。
(4)联合查询注入:可