SQL注入被称为漏洞之王 , 是最常用的漏洞之一 , 其中PHP在这方面的贡献最大
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语句中可以将单引号,双引号,括号自由拼接。