sql注入入门--必懂知识点

注入介绍

SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。

在这里插入图片描述

危害性

攻击者通过SQL注入获取到服务器的库名、表名、字段名,从而获取到整个服务器中的数据,对网站用户的数据安全有极大的威胁。攻击者也可以通过获取到的数据,得到后台管理员的密码,然后对网页页面进行恶意篡改。这样不仅对数据库信息安全造成严重威胁,对整个数据库系统安全也影响重大。

在这里插入图片描述

注入必须知道的三个库

库名 作用
information_schema 存储所有库名
information_TABLES 存储数据库中的表信息(包括表属于哪个数据库)
information_COLUMNS 存储整个数据库中的列信息(包括列属于那个表)

常见注入效果

类型 介绍 语法
基于布尔的盲注 根据真假进行注入 ?id=1’ and 1=1 #
基于时间的盲注 用条件语句查看时间延迟语句是否执行 ’ and if(1=0,1, sleep(10)) #
基于报错注入 就是页面返回错误信息 ’ and extractvalue(‘a’,concat(1,(SELECT user())));
联合查询注入 union ’ union select user()

sql注入的两种检测方式

1、动态检测

动态监测分为两类:手工监测以及工具监测。相对于手动监测的高成本以及高漏检率,在实际生产过程中更偏向于工具监测,但工具监测同样存在较大的局限性。其原因在于工具是用报文来判断SQL注入是否生效,然而仅仅通过报文是很难精准地判断SQL注入是否存在,因此存在较高的误报率。

2、静态检测

静态检测的误报率相对较低,其主要原因在于SQL注入漏洞的代码特征较为明显。 (1)使用数据库交互代码;
(2)使用字符串拼接方式构造动态SQL语句; (3)使用未过滤的不可信任数据。
在常规的排查应用系统中是否存在SQL注入漏洞时,由于静态扫描的代码特征明显,误报率低和直接阅读相关代码,工作总量减少的优势,通常使用静态扫描。

注入防范措施

分级管理

对用户进行分级管理,严格控制用户的权限,对于普通用户,禁止给予数据库建立、删除、修改等相关权限,只有系统管理员才具有增、删、改、查的权限。例如上述实例中用户在查询语句中加入了drop
table。肯定是不能让其执行的,否则系统的数据库安全性就无法保障。故而通过权限的设计限制。使得即使恶意攻击者在数据提交时嵌入了相关攻击代码。但因为设置了权限,从而使得代码不能执行。从而减少SQL注入对数据库的安全威胁。

2、参数传值

程序员在书写SQL语言时,禁止将变量直接写入到SQL语句,必须通过设置相应的参数来传递相关的变量。从而抑制SQL注入。数据输入不能直接嵌入到查询语句中。同时要过滤输入的内容,过滤掉不安全的输入数据。或者采用参数传值的方式传递输入变量。这样可以最大程度防范SQL注入攻击。

3、基础过滤与二次过滤

SQL注入攻击前,入侵者通过修改参数提交“and”等特殊字符,判断是否存在漏洞,然后通过select、update等各种字符编写SQL注入语句。因此防范SQL注入要对用户输入进行检查,确保数据输入的安全性,在具体检查输入或提交的变量时,对于单引号、双引号、冒号等字符进行转换或者过滤,从而有效防止SQL注入。当然危险字符有很多,在获取用户输入提交的参数时,首先要进行基础过滤,然后根据程序的功能及用户输入的可能性进行二次过滤,以确保系统的安全性。

4、使用安全参数

SQL数据库为了有效抑制SQL注入攻击的影响。在进行SQLServer数据库设计时设置了专门的SQL安全参数。在程序编写时应尽量使用安全参数来杜绝注入式攻击。从而确保系统的安全性。

SQLServer数据库提供了Parameters集合,它在数据库中的功能是对数据进行类型检查和长度验证,当程序员在程序设计时加入了Parameters集合,系统会自动过滤掉用户输入中的执行代码,识别其为字符值。如果用户输入中含有恶意的代码,数据库在进行检查时也能够将其过滤掉。同时Parameters集合还能进行强制执行检查。一旦检查值超出范围。系统就会出现异常报错,同时将信息发送系统管理员,方便管理员做出相应的防范措施。

附:sql注入神器(sqlmap)

链接:https://pan.baidu.com/s/1HakqVc70TbZKaRlWRxogNA 提取码:BOYS

猜你喜欢

转载自blog.csdn.net/guyingyinga/article/details/121214473
今日推荐