- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
WEB应用SQL注入攻击和防范技术研究
WEB应用SQL注入攻击和防范技术研究
摘要:Microsoft SQL Server、MySQL和Oracle是目前三大主流数据库,基于此所开发的WEB网站是目前大多数网站采用的常规模式。虽然Web技术不断成熟,安全性也不断提高,但是SQL注入漏洞不可必可避免的存在,且攻击工具也不断更新,SQL 注入漏洞已经是Web应用系统中最为严重的安全漏洞之一。该文将分析SQL注入攻击的原理,综合探讨应对SQL攻击的防范技术。
关键词:SQL注入攻击;检测技术;代码层;平台层
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)33-7408-02
随着互联网技术发展,数据库驱动Web应用得到基本普及,现在很多单位和机构开发了各自的服务网站和管理系统,系统基本架构是一个后台数据库和很多面向用户的Web交互页面,Web页面包含了使用高级语言编写的服务器端脚本,通过Web页面脚本来获取用户交互提供的特定信息,常用功能有注册、用户私密信息的提交、登录、信息搜索、网上购物、金融转账等,涉及到用户的个人私密信息,但由于软件开发人员在实现系统模块功能时,往往轻视系统的安全性,在系统中留有Bug(漏洞),给系统留下了很大的安全隐患。
Rain Forest Puppy于2000年发布了一篇关于SQL注入的报告,提出自从SQL数据库开始连接Web应用起,SQL注入就已经存在,根据网络统计,每年都有数万个网站遭受SQL 注入式攻击。是Web 应用程序安全漏洞的发生率最高、危害性最大的漏洞。因此,有必要了解SQL 注入攻击的原理和攻击方法,采取相应地防范措施,有效防止SQL 注入攻击。
1 SQL 注入攻击原理
1.1 SQL 注入攻击原理
SQL注入漏洞:应用程序在向后台数据库传递SQL(Structured Query Language)查询时,如果为攻击者提供了影响该查询的能力,则会引发SQL注入。SQL注入攻击是通过漏洞扫描工具扫描Web页面中存在的SQL注入漏洞,漏洞扫描工具主要有HDSI、Domain等,通过SQL注入点,插入或者添加到Web页面输入的参数中,再将非法参数传递给服务器端的数据库中,并加以解析和执行,从而获得数据库服务器最高用户的权限,对数据库进行任意操作,控制服务器系统。因为SQL的多样性和构造时使用的方法提供了丰富了编码??段,因此凡是构造SQL语句的步骤都存在被攻击的风险。
1.2 SQL注入攻击途径
如果开发人员无法彻底理解后台数据库架构或者无法完全意识到所开发代码潜在的安全问题,那么他们编写的应用容易受到SQL注入攻击。Web应用开发人员在将从Web表单、cookie、输入参数等接收到的值传递给SQL查询之前并未主动对其进行过验证,那么代码将存在SQL注入漏洞。攻击者通过构造动态字符串控制SQL查询的输入,并将其解析为代码,攻击者就有能力在后台数据库上执行攻击代码。
1.2.1 通过用户输入攻击
攻击者通过交互表单注入动态构造SQL查询攻击代码,包含这些攻击代码的请求构造成SQL查询,进而提交给数据库,是SQL注入攻击最常见的途径。
1.2.2 通过系统变量攻击
Web应用在使用Http、Header和环境变量时,这些系统变量未经过处理就写入数据库,可能导致SQL注入攻击。
1.2.3 通过cookies攻击
Cookies文件存储在客户端,其中包含着Web应用生成的状态信息,再次访问这个Web应用时,会返回存储时的数据信息,通过植入cookies构建SQL查询进而提交攻击代码。
1.2.4 二阶注入攻击
攻击者向数据库植入可以触发SQL注入的恶意代码,这些代码不会立刻导致威胁,这个恶意输入实在系统运行过程中触发的。
1.3 SQL注入攻击方式
SQL语言属性决定对SQL注入的攻击方式有很多种,是Web 应用程序安全漏洞的发生率最高、危害性最大的漏洞。
1.3.1逻辑错误的查询攻击
攻击者尝试注入语句导致数据库出现逻辑错误、语法错误或者类型转换,得到相应的错误信息来进行判断,攻击者可以分析数据库的关系结构、提取数据,为下一步攻击进行信息搜集和前提条件。
1.3.2重言式攻击
重言式攻击是指在条件语句中注入代码,使条件语句结果始终为真,如果程序未对输入进行验证,则可以绕过服务器的身份认证,返回数据表的内容。
1.3.3联合查询攻击
攻击者将构造Union查询语句插入到正常的SQL语句中,绕过身份验证,提取数据,进而获取想要得到的信息。
1.3.4利用存储过程攻击
由于存储过程一般都是用脚本语言编写,和普通程序一样都存在风险,攻击
文档评论(0)