含义
sql注入是将代码插入(拼接)到应用(用户)的输入参数中,
之后再将这些参数传递给后台的SQL服务器加以解析并执行的攻击,
总结起来就是攻击者将恶意代码拼接到sql语句并加以执行从而得到数据的过程。
成因
SQl语句未对用户参数进行严格过滤
可引发注入的地方
其实只要是客户端可控、参数值代入数据库查询的地方都可能存在注入
常见的如下,按出现频率排序:
1. GET
2. POST
3. X-Forwarded-For
4. Cooke
5. User-Agent
注入分类
根据语法(较权威):
1. 可联合查询注入:
只要页面有显示位即可使用,且注入速度很快
2. 报错型注入:
没有显示位但用echo "mysql_error()"输出了错误信息,速度很快,但是语句较复杂
3. 布尔型注入:
一次一个字节,速度慢,但只要有注入就能用
4. 基于时间延迟注入:
超级慢,比布尔型注入慢几倍,但是通用性较强
5. 可多语句查询:
只有SQL Server可以使用
根据类型:
1. 整形
2. 字符串型
3. 搜索型
查找注入点
在URL中:
1. and 1=1/and 1=2(整型)
2. 随即输入(整型)
3. -1/+1 回显上下页面(整型)
4. 单引号(字符型/整型)
5. and sleep(5) (判断页面返回时间)
在http头:
1. X-Forwarded-For
2. Cookie
3. User-Agent
网友评论
1. X-Forwarded-For
2. Cookie
3. User-Agent
接口中有传cookie和User-Agent的这种类型的接口,一般测试进行安全测试?