您当前的位置:首页 > 电脑百科 > 安全防护 > 服务器/网站

简述SQL注入攻击

时间:2021-03-24 15:07:23  来源:  作者:

概念

SQL注入是一种欺骗数据库服务器的攻击手段,通过修改或拼接web界面中表单域、原URL或数据包输入的参数为SQL语句,输入到web服务器中进而使数据库服务器执行数据库命令。

简单的说,就是在输入字符串中嵌入SQL命令,在设计程序中忽略了对特殊字符串的检查,这些嵌入的指令便会被误认为是正常的SQL命令从而在数据库中执行,从而攻击成功。

假如一个网站的页面显示URL为example.com?test=111,此时URL实际向服务器传递了值为111的变量test,这表明当前页面是对数据库进行动态查询的结果,此时在URL中插入恶意SQL语句并执行。

例如一个网站登录验证的 SQL 查询代码为:

strSQL = "SELECT * FROM users WHERE (name = '" + userName + "') and (pw = '"+ password +"');"

如果填入以下内容:

userName = "1' OR '1'='1";

passWord = "1' OR '1'='1";

那么 SQL 查询字符串为:

strSQL = "SELECT * FROM users WHERE (name = '1' OR '1'='1') and (pw = '1' OR '1'='1');"

此时无需验证通过就能执行以下查询:

strSQL = "SELECT * FROM users;"

分类

目前SQL注入大致分为普通注入和盲注:

普通注入

根据后台数据库提示有价值的错误信息进行注入。

盲注

有经验的管理员在给出代码有漏洞的页面时,没有提供详细的错误信息。

攻击者需要运用脚本通过仅有的判断信息(比如时间差)对表中的每一个字段进行探测,从而实现注入的技术(盲注的难度较大,但注入测试中经常会遇到)。

危害

只要是使用数据库开发的应用系统就可能存在SQL注入攻击。

自1999年起,SQL注入就成了常见安全漏洞之一,SQL注入漏洞至今仍然在CVE列表中排前十。

防范SQL注入的方法

错误消息处理

要防御SQL注入,就要避免在网页中出现一些详细的错误信息。

攻击者可以利用这些信息来插入SQL语句,因此使用一种标准的输入确认机制来验证所有的输入数据的类型、长度、规则、语句等。

输入验证

检查用户输入的合法性,尽量限制用户输入特殊的符号,确保输入的内容只包含合法的数据。

在客户端和服务器端都要执行用户输入检查。之所以要执行服务器端验证,是为了弥补客户端验证机制脆弱的安全性。

加密处理

没有加密的数据可以被直接利用,但是加密了就不一定会解密成功,因此尽量不要使用一些常见的加密算法,就算用也要使用32位以上的加密算法,将用户登录名称、密码等数据加密保存。

加密用户输入的数据,然后再将它与数据库中保存的数据比较,这相当于对用户输入的数据进行了“消毒”处理,用户输入的数据不再对数据库有任何特殊的意义,从而也就使攻击者无法利用用户输入来注入SQL命令。

存储过程来执行所有的查询

SQL参数的传递方式将防止利用单引号和连字符实施注入。

此外,它还使得数据库权限只允许特定的存储过程执行,所有的用户输入必须遵从被调用的存储过程,这样就很难再发生SQL注入了。



Tags:SQL注入攻击   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
概念SQL注入是一种欺骗数据库服务器的攻击手段,通过修改或拼接web界面中表单域、原URL或数据包输入的参数为SQL语句,输入到web服务器中进而使数据库服务器执行数据库命令。简...【详细内容】
2021-03-24  Tags: SQL注入攻击  点击:(245)  评论:(0)  加入收藏
SQL注入攻击是黑客对数据库进行攻击常用的手段之一,随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验参差不齐,相当大一部...【详细内容】
2020-12-08  Tags: SQL注入攻击  点击:(113)  评论:(0)  加入收藏
sql注入攻击的原理恶意用户在提交查询请求的过程中将SQL语句插入到请求内容中,同时程序本身对用户输入内容过分信任而未对恶意用户插入的SQL语句进行过滤,导致SQL语句直接被服...【详细内容】
2020-02-14  Tags: SQL注入攻击  点击:(95)  评论:(0)  加入收藏
首先的话,我们来仔细搞清楚这个攻击的流程,第一步就是了解一下,什么是sql?又什么是sql注入、sql注入的流程和步骤。1、首先什么是sql,Sql是一种数据库查询和程序设计的语言,这里的...【详细内容】
2019-10-18  Tags: SQL注入攻击  点击:(215)  评论:(0)  加入收藏
▌简易百科推荐
在最近的一波攻击中,黑客利用多个插件中未修补的漏洞攻击了 160 万个 WordPress 网站。 易受攻击的插件对 WordPress 网站产生了的巨大攻击数据。 Wordfence 最近发现 WordPr...【详细内容】
2021-12-16  蚁安    Tags:WordPress   点击:(8)  评论:(0)  加入收藏
事件起因从安全分析系统里面发现一条带有病毒的下载,然后针对这条记录展开了一系列的分析分析过程1.登录到被感染服务器,查看系统状况,hadoop 这个用户在 2020/6/18 20:32 从这...【详细内容】
2021-11-23  Z2990Lig    Tags:SSH   点击:(32)  评论:(0)  加入收藏
1、除了服务器需要用的一些正规软件,其它都不要安装。2、在用户中把administrator改名,这样做的目的是即使对方暴破了我们的密码用户名也不容易猜住,相当于又加了一道关卡。...【详细内容】
2021-11-01  IT小哥吧    Tags:服务器   点击:(37)  评论:(0)  加入收藏
账户安全(1)更名administrator本地用户并禁用guest账户步骤:点击“开始”,找到“管理工具”,点击里面的“计算机管理”,找到“本地用户和组” (2)设定账户锁定策略尝试5次失败...【详细内容】
2021-10-12  Kali与编程  今日头条  Tags:Windows主机   点击:(62)  评论:(0)  加入收藏
本文主要介绍以Microsoft的Windows Server 2019 ,版本:Datacenter(Domain Controller)安全加固保护.企业随着规模不断扩大,业务增多,信息安全建设是企业里一条只有重点没有终点...【详细内容】
2021-09-17  Vireshark    Tags:服务器安全   点击:(64)  评论:(0)  加入收藏
目录常见共享命令IPC$IPC$的利用条件1:开启了139、445端口2:目标主机开启了IPC$共享3:IPC连接报错IPC空连接空连接可以做什么?(毫无作用)IPC$非空连接IPC$非空连接可以做什么?di...【详细内容】
2021-09-16  网络说安全    Tags:系统安全   点击:(86)  评论:(0)  加入收藏
昨天一个老哥找到我,说他的服务器这几天一直被CC攻击,问我这边有没有什么解决的方法? 近年来,网络攻击事件越来越频繁,最常见的就是CC攻击和DDOS攻击,主要的区别就是针对的对象不...【详细内容】
2021-09-10  小蚁GDRAGON    Tags:cc攻击   点击:(58)  评论:(0)  加入收藏
网站页面上的登录操作,通常都是输入帐号密码,传输至网站后台验证。在网站页面、数据传输中,通过技术手段,都可以得到用户输入的信息,并可以修改,从而发起网络攻击。典型的如:使用自...【详细内容】
2021-08-30  修丹道的程序猿    Tags:登录方式   点击:(62)  评论:(0)  加入收藏
网络安全研究人员披露了一类影响主要 DNS 即服务 (DNSaaS) 提供商的新漏洞,这些漏洞可能允许攻击者从企业网络中窃取敏感信息。基础设施安全公司 Wiz 的研究人员 Shir Tamar...【详细内容】
2021-08-12  零日时代    Tags:漏洞   点击:(66)  评论:(0)  加入收藏
001暴力破解1. 指定用户名爆破密码传统型爆破思路,用户名可以通过猜测或者信息收集获得。猜测:admin、网站域名等信息收集:新闻发布人、whoami等2. 指定密码爆破用户名如果是后...【详细内容】
2021-07-23  KaliMa  今日头条  Tags:登陆框   点击:(85)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条