定义
SQL注入是指攻击者通过注入恶意的SQL命令,破坏SQL查询语句的结构,从而达到执行恶意SQL语句的目的,实质就是将恶意的SQL代码注入到特定字段用于实施脱库攻击等。SQL注入攻击的成功必须借助应用程序的安全漏洞,例如用户输入没有经过正确地过滤(针对某些特定字符串)或者没有特别强调类型的时候,都容易造成异常地执行SQL语句。
注入类型
- Time-based blind SQL injection(基于时间延迟注入)
- UNION query SQL injection(可联合查询注入)
- Error-based SQL injection(报错型注入)
- Boolean-based blind SQL injection(布尔型注入)
- Stacked queries SQL injection(可多语句查询注入)
攻击载体
- GET请求 - 从指定的资源请求数据
- POST请求 - 向指定的资源提交要被处理的数据
- HTTP头
http header信息头是HTTP协议的重要组成部分,包含了一数据段来于服务器进行通信。SQL注入主要是利用三个:UA、X-Forwarded-For和Referer。
UA是包含了操作系统版本,浏览器版本信息的一组字符串,很多网站用他来判断操作系统和浏览器类型,来展示对应的页面。也有很多通过UA来判断访问是否合法,是用户访问还是程序访问等。
X-Forwarded-For是用来识别通过HTTP代理方式连接到Web服务器的客户端最原始IP地址