SQL注入点的判断,先判断存不存在SQL注入
我们可以通过单引号判断法,比如1',如果页面返回错误,则存在SQL注入,因为无论字符型还是数字型,都会因为单引号格式不匹配而报错
SQL注入类型
有三方面不同,注入点不同,提交方式不同,获取信息的方式不同
首先注入点的不同,分为数字类型的注入和字符串型的注入,两个的唯一区别在于字符串型的注入需要使用引号来闭合,而在解题时,首先判断是哪种类型,如果有必要,再去判断闭合方式
如何判断是数字类型的注入,还是字符串类型的注入?
数字型判断可以用and 1=1和and 1=2来判断
先输入前者,页面依旧运行正常,继续输入后者页面运行错误,则说明SQL注入为数字型注入
字符串判断可以用and '1'='1和and '1'='2来判断
先输入前者,页面依旧运行正常,继续输入后者页面运行错误,则说明SQL注入为字符串型注入
这其中又涉及到sql语法和sql逻辑
sql语句可以单行或多行书写,以分号结尾,可以使用空格或缩进,不区分大小写,但是吧,关键字就建议大写了
sql分为四类 DDL数据定义语言 DML数据操作语言 DQL数据查询语言 DCL数据控制语言
定义数据库对象,操作对数据库进行增删,查询数据库中的记录,控制数据库的访问权限
DQL
语法
SELECT 字段列表
FROM 表名列表
WHERE 条件列表
GROUP BY 分组字段列表
HAVING 分组后条件列表
ORDER BY 排序字段列表
LIMIT 分页参数
DQL分组查询
SELECT 字段列表 FROM 表名[WHERE 条件]GROUP BY 分组字段名[HAVING 分组后过滤条件]
where与having区别在于执行时机与判断条件不同,where是分组前过滤,不满足where条件的不参与分组,having是分组后对结果进行过滤,where不能对聚合函数进行判断,having可以