原理
SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。基于此,SQL注入的产生原因通常表现在以下几方面:①不当的类型处理;②不安全的数据库配置;③不合理的查询集处理;④不当的错误处理;⑤转义字符处理不合适;⑥多个提交处理不当。
总共,
基于服务器接收到的响应
union联合注入,在没有过滤的情况下
数字型注入、
字符型注入、
堆查询注入
SQL盲注
基于布尔SQL盲注:构造逻辑判断语句,判断信息的正价,去除所有的真值,实现SQL注入
基于时间的SQL盲注
基于报错的SQL盲注:使用函数让错误爆出来,在适当的地方插入SQL语句
基于如何处理输入的SQL查询(数据类型)
基于字符串
数字或整数为基础的
基于程度和顺序的注入(哪里发生了影响)
一阶注射
二阶注射
基于注入点的位置上的
通过用户输入的表单域1的注射
通过cookie注射
通过服务器变量注射。(基于头部信息的注射)