传说,SQL注入是黑客对数据库进行攻击的常用手段,今天就来介绍一下SQL注入。
01 SQL注入介绍
SQL注入是网站存在最多也是最简单的漏洞,主要原因是程序员在开发用户和数据库交互的系统时没有对用户输入的字符串进行过滤,转义,限制或处理不严谨,导致用户可以通过输入精心构造的字符串去非法获取到数据库中的数据。本文以免费开源数据库MySQL为例。
02 SQL注入举例
以万能密码场景举例说明:
这里用户登录用的SQL语句为:
SELECT * FROM user WHERE username=‘admin’ AND password=‘passwd’;
此处admin和passwd分别为用户输入的用户名和密码,如果程序没有对用户输入的用户名和密码做处理,就可以构造万能密码成功绕过登录验证,如用户输入‘or 1=1#, SQL语句将变为:
SELECT * FROM user WHERE username=’‘or 1=1#’ AND password=‘’;
‘’or 1=1为TRUE,#注释掉后面的内容,所以查询语句可以正确执行。这样就绕过了后台的验证,达到注入的目的。
03 SQL注入分类
事实上SQL注入有很多种,按数据类型可以分为数字型、字符型和搜索型,按提交方式可分为GET型,POST型,Cookie型和HTTP请求头注入,按执行效果有可以分为报错注入、联合查询注入、盲注和堆查询注入,其中盲注又可分为基于bool的和基于时间的注入。
SQL盲注,与一般注入的区别在于,一般的注入攻击者可以直接从页面上看到注入语句的执行结果,而盲注时攻击者通常是无法从显示页面上获取执行结果,甚至连注入语句是否执行都无从得知,因此盲注的难度要比一般注入高。
目前网络上现存的SQL注入漏洞大多是SQL盲注。
-
SQL
+关注
关注
1文章
789浏览量
46365 -
安全测试
+关注
关注
0文章
34浏览量
8948
发布评论请先 登录
SQL 通用数据类型
一文带你了解海凌科毫米波雷达
一文带你了解电源测试系统的功能!
带你一文了解芯片开封技术
一文带你了解电气安规测试
如何一眼定位SQL的代码来源:一款SQL染色标记的简易MyBatis插件
功能安全实车测试新突破:故障注入技术的创新实践
Web安全之渗透测试基础与实践
dbForge Studio For SQL Server:用于有效开发的最佳SQL Server集成开发环境
带你一文了解什么是灯具检测测试

一文带你了解安全测试基础之SQL注入
评论