SQL注入

目录

一、SQL注入原理

二、SQL注入的危害

三、SQL注入的分类

四、SQL注入的流程

五、总结

一、SQL注入原理

1.SQL注入产生的原因:

        当Web应用向后台数据库传递SQL语句进行数据库操作时。如果对用户输入的参数没有经过严格的过滤处理,那么攻击者就可以构造特殊的SQL语句,直接输入数据库引擎执行,获取或修改数据库中的数据。

2.SQL注入的本质:

把用户输入的数据当做代码来执行,违背了”数据与代码分离“的原则。

3.SQL注入的两个关键点:

(1)用户能够控制输入的内容 。

(2)Web应用把用户输入的内容带入到数据库中执行。

二、SQL注入的危害

1.盗取网站的敏感信息。

2.绕过网站后台认证。

            后台登录语句:

            SELECT * FROM admin WHERE username =user'and password =pass

3.借助SQL注入漏洞提权获取系统权限。

4.读取文件信息。

三、SQL注入的分类

1.根据注入位置分类: GET型、POST型、Head头注入。

2.根据反馈结果分类:有回显 (显错注入) 、无回显(盲注)。

3.根据数据类型分类:

数字型:输入的参数为整型,如id、年龄、页码等。

字符型:输入的参数为字符串。

数字型与字符型最大的区别在于: 数字型不需要单引号闭合,而字符串型一般需要单引号闭合。

四、SQL注入的流程

1.寻找注入点

SQL注入_第1张图片

2.判断闭合方式

?d=1asdfa

有报错:数字型,无闭合或)闭合

无报错:字符型,再判断闭合方式。

SQL注入_第2张图片

3.验证漏洞

?id=1' or 1=1 # 正常显示

SQL注入_第3张图片

4.判断列数及回显位

?id =1' ) order by 4 #

? Id =1' ) order by 3#

SQL注入_第4张图片



五、总结

1.寻找注入点。

2.判断闭合方式。

3.验证。

4.判断列数及回显位。

5.取数据

取数据库名。

根据数据库名,取表名。

根据数据库名、表名,取列名。

取具体数据。

SQL注入_第5张图片

 

你可能感兴趣的:(软件安全,数据库,安全,web安全)