一、SQL注入原理
漏洞产生的原因是由于后台SQL语句拼接了用户的输入,而且Web应用程序对用户输入数据的合法性没有做出判断或过滤,前端传入后端的参数是攻击者可控的,攻击者可通过构造不同的SQL语句来实现对数据库的任意操作,例如增加、删除、修改、以及查询数据等
,如当前数据库的用户权限足够大,则可以对操作系统执行任意指令,达到控制目标服务器的操作
。
二、SQL注入攻击层面
SQL注入可以分为平台层注入
和代码层注入
。
前者由不安全的数据库配置或数据库平台的漏洞所导致;后者主要是由于程序员对输入未进行严格的过滤。SQL注入是针对数据库、后台、系统层面的攻击!
三、SQL注入的分类
根据注入点类型进行分类,有如下几种类型:
- 数字类型的注入
- 字符串类型的注入
- 搜索型注入
根据提交方式进行分类,有如下几种类型:
- GET注入
- POST注入
- COOKIE注入
- HTTP头部注入(XFF注入、UA注入、REFERER注入)
根据获取信息的方式进行分类,有如下几种类