2018-06-15 夜雨
SQL注入学习笔记
SQL注入学习笔记(学习心得和总结)

注入分类
0x00 按照是否可以返回结果分类
该分类意义:决定注入策略和注入过程时长
-
盲注
-
明注(没有这种说法,只是为了和盲注区分)
0x01 按照参数类型分类
该分类的意义: 决定是否需要闭合符号
- 数值型
- 字符型
0x02 按照环境条件分类
该分类意义: 决定注入策略和注入过程时长
- 基于时间延迟的注入(使用if(expre1, sleep(sometime), expre3))
- 基于布尔值的注入
判断注入点是数值型还是字符型的原理、方法和作用
原理
注入参数为数字不需要闭合用于字符串的单引号,反之字符串参数需要闭合的一对单引号。
方法
一般而言在实参后面添加单引号引发错误,不加单引号但是后面添加 and 1=1
返回页面正常,添加and 1=3
引发错误的属于数字型,如:
http://www.sql.com/xxx.php?id=1 假设ID为存在注入的参数
http://www.sql.com/xxx.php?id=1‘ 语句报错
http://www.sql.com/xxx.php?id=1 and 1=1 页面正常返回结果
http://www.sql.com/xxx.php?id=1 and 1=2 页面返回错误
一般而言在实参后面添加单引号引发错误,但是再添加and '1'='1
返回页面正常,但是添加and '1'='2
返回错误页面的属于字符型注入,如:作用
用于决定实参之后是否需要完成符合闭合,以符合SQL语句语法规范,从而保证SQL语句能正常执行。