一、原理
SQL注入的本质就是把用户的输入参数,未加过滤的当作sql被数据库执行。
二、分类
1、常见的sql注入按照参数类型可分为两种:
数字型和字符型。
当发生注入点的参数为整数时,比如 ID,num,page等,这种形式的就属于数字型注入漏洞。同样,当注入点是字符串时,则称为字符型注入,字符型注入需要引号来闭合。
2、也可以根据数据库返回的结果,分为回显注入、报错注入、盲注。
回显注入:可以直接在存在注入点的当前页面中获取返回结果。
报错注入:程序将数据库的返回错误信息直接显示在页面中,虽然没有返回数据库的查询结果,但是可以构造一些报错语句从错误信息中获取想要的结果。
盲注:程序后端屏蔽了数据库的错误信息,没有直接显示结果也没有报错信息,只能通过数据库的逻辑和延时函数来判断注入的结果。根据表现形式的不同,盲注又分为based boolean和based time两种类型。
3、按照注入位置及方式不同分为:
post注入,get注入,cookie注入,盲注,延时注入,搜索注入,base64注入,无论此种分类如何多,都可以归纳为以上两种形式。
来源:https://www.cnblogs.com/shwang/p/12184727.html