SQL注入被称为漏洞之王 , 是最常用的漏洞之一 , 其中PHP在这方面的贡献最大

SQL注入(SQL注入(SQLi)攻击)攻击-注入点_数据库

SQL注入原理

用户在参数中插入恶意的SQL语句 , 破坏原有的SQL语法结构 , 从而执行攻击者的操作

SQL注入点

注入点可分为两大类: 数字型 和 字符型 

其中字符型又可以细分为 单引号字符型 , 双引号字符型 , 单/双引号+括号的字符型

数字型注入

SQL语句拼接参数时 , 直接拼接参数本身 , 格式如下

SELECT * FROM users WHERE id=$id


字符型注入

SQL语句拼接参数时 , 对参数包裹了单引号,双引号,或括号

单引号字符型 :

参数包裹了单引号 , 格式如下


SELECT * FROM users WHERE id='$id'

单引号+括号字符型 :

参数包裹了单引号和括号 , 格式如下:

SELECT * FROM users WHERE id=('$id')


双引号+括号字符型 :

参数包裹了双引号和括号 , 格式如下:

$id = '"' . $id . '"';
SELECT * FROM users WHERE id=($id)

 字符型注入并非只有这三种,SQL语句中可以将单引号,双引号,括号自由拼接。