1.基础注入:这是最直接的SQL注入形式,攻击者通过修改查询语句的某个参数,插入额外的SQL代码,改变原有查询逻辑,以达到非法获取数据的目的。
2.联合查询注入:当原查询中使用了SELECT语句,并且错误信息返回时,攻击者可以通过UNION操作符将多个SELECT语句的结果合并,从而从其他表中提取敏感信息。
3.布尔盲注:当SQL注入后服务器不直接返回查询结果,而是根据查询结果的真假影响页面的显示时(例如页面加载速度变化、特定内容的存在与否),攻击者通过构造带有布尔表达式的SQL语句,逐步推断出数据。
4.时间盲注:与布尔盲注相似,但利用的是数据库的延时特性。攻击者通过构造SQL语句使服务器执行延时操作(如SLEEP函数),根据响应时间长短判断查询结果的真伪,以此逐位猜解数据。
5.堆叠查询注入:允许在单个SQL语句中执行多个查询的情况。攻击者可以利用分号(;)分隔多个SQL命令,执行添加管理员用户、删除数据等危险操作。
6.内联注入:发生在参数直接拼接到SQL查询中的情况,是最常见也是最容易防范的一种注入类型。
7.宽字节注入:针对字符编码漏洞,特别是那些支持多字节编码(如UTF-8)的系统。攻击者可以利用宽字符覆盖SQL语句中的结束引号,从而插入恶意代码。