目录
一、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.寻找注入点
2.判断闭合方式
?d=1asdfa
有报错:数字型,无闭合或)闭合
无报错:字符型,再判断闭合方式。
3.验证漏洞
?id=1' or 1=1 # 正常显示
4.判断列数及回显位
?id =1' ) order by 4 #
? Id =1' ) order by 3#
五、总结
1.寻找注入点。
2.判断闭合方式。
3.验证。
4.判断列数及回显位。
5.取数据
取数据库名。
根据数据库名,取表名。
根据数据库名、表名,取列名。
取具体数据。