- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL注入漏洞原理及分析
SQL注入漏洞原理及分析
Structured Query Language Injection Principle And Analysis of Vulnerability
摘 要:注入式攻击的根源在于,程序命令和用户数据(即用户输入)之间没有做到泾渭分明。这使得攻击者有机会将程序命令当作用户输入的数据提交给We程序,以发号施令,为所欲为。而且表面看起来注入攻击与一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警告,如果管理员没查看IIS日志的习惯,很可能被渗透很长时间都不会发觉。本文通过对SQL注入式攻击的常用攻击方法做了逐一的分析, 并针对每种攻击方法提出了检测和防范的措施。文章还会对一些网站源代码进行分析,并介绍一些检测工具。
关 键 词:SQL注入攻击;防御方法;脚本攻击;网站安全;数据库安全。
随着数据库技术及B/S模式应用技术的发展,SQL注入攻击也成了黑客对数据库进行攻击的常用手段之一。但是由于使用这种模式编写代码的程序员水平有限,相当大一部分程序员在编程的时候,没有考虑用户输入数据的合法性问题,使得应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
1.SQL注入攻击的背景
在信息技术高速发展的今天,各种各样复杂的威胁网站技术也同时快速的“发展”,让人们防不胜防。攻击者利用网络的安全漏洞进行各种恶意活动,如账号盗用、私密信息截获、带宽资源占用等。严重破坏了网络的正常健康运行,危害十分严重。
网站威胁的目标定位有多个维度,可以是个人、公司、某种行业,甚至国家、地区、性别、种族、宗教等。通常情况下攻击会采用多种形态,如病毒、蠕虫、特洛伊、间谍软件等或是他们的复合形态。可以分为内部攻击和外部攻击两类:
1)内部攻击主要来自信任网络,可能是用户执行了未授权访问或是无意中定制了恶意攻击;
2)外部攻击主要是由于网络漏洞被利用或者用户受到恶意程序制定者的专一攻击。
2.SQL注入攻击的概念
SQL注入攻击源于英文“SQL Injection Attack”。目前还没有看到一种标准的定义,常见的是对这种攻击形式、特点的描述。微软技术中心从两个方面进行了描述:
1)脚本注入式的攻击;
2)恶意用户输入用来影响被执行的SQL脚本。
Stephen Kost给出了这种攻击形式的另一个特征,“从一个数据库获得未经 授权的访问和直接检索”。SQL注入攻击就其本质而言,他利用的工具是SQL的语法,针对的是应用程序开发者编程过程中的漏洞。“当攻击者能够操作数据,往应用程序中插入一些SQL语句时,SQL注入攻击就发生了”。 SQL注入攻击是指黑客利用一些Web 应用程序(论坛, 留言本, 文章发布系统)中某些疏于防范的用户可以提交或修改的数据的页面, 精心构造Sql 语句, 把特殊的SQL 指令语句插入到系统实际SQL语句中并执行它, 以获取用户密码等敏感信息, 以及获取主机控制权限的攻击方法。
3.SQL注入攻击特点
1)广泛性
SQL注入攻击利用的是SQL语法,因此只要是利用SQL语法的Web应用程序如果未对输入的SQL语句做严格的处理都会存在SQL注入漏洞,目前以Active/Java Server Pages、 Cold Fusion Management、 PHP、Perl等技术与SQL Server、Oracle、DB2、Sybase等数据库相结合的Web应用程序均发现存在SQL注入漏洞。
2)技术难度不高
SQL注入技术公布后,网络上先后出现了多款SQL注入工具,例如教主的HDSI、NBSI、明小子的Domain等,利用这些工具软件可以轻易地对存在SQL注入的网站或者Web应用程序实施攻击,并最终获取其计算器的控制权。
3)危害性大
SQL注入攻击成功后,轻者只是更改网站首页等数据,重者通过网络渗透等攻击技术,可以获取公司或者企业机密数据信息,产生重大经济损失。
4.SQL注入攻击的实现原理
SQL注入攻击主要是通过构建特殊的输入,这些输入往往是SQL语法中的一些组合,这些输入将作为参数传入Web应用程序,通过执行SQL语句而执行入侵者的想要的操作,下面以登录验证中的模块为例,说明SQL注入攻击的实现方法。
在Web应用程序的登录验证程序中,一般有用户名(username)和密码(password)两个参数,程序会通过用户所提交输入的用户名和密码来执行授权操作。其原理是通过查找user表中的用户名(username)和密码(password)的结果来进行授权访问,典型的SQL查询语句为:
Select * from users where username=admin and pas
文档评论(0)