欢迎来到天天文库
浏览记录
ID:6150506
大小:93.00 KB
页数:7页
时间:2018-01-04
《sql注入漏洞原理及分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、SQL注入漏洞原理及分析StructuredQueryLanguageInjectionPrincipleAndAnalysisofVulnerability摘要:注入式攻击的根源在于,程序命令和用户数据(即用户输入)之间没有做到泾渭分明。这使得攻击者有机会将程序命令当作用户输入的数据提交给We程序,以发号施令,为所欲为。而且表面看起来注入攻击与一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警告,如果管理员没查看IIS日志的习惯,很可能被渗透很长时间都不会发觉。本文通过对SQL注入式攻击的常用攻击方法做了逐一的分析,并针对每种攻击方法
2、提出了检测和防范的措施。文章还会对一些网站源代码进行分析,并介绍一些检测工具。关键词:SQL注入攻击;防御方法;脚本攻击;网站安全;数据库安全。随着数据库技术及B/S模式应用技术的发展,SQL注入攻击也成了黑客对数据库进行攻击的常用手段之一。但是由于使用这种模式编写代码的程序员水平有限,相当大一部分程序员在编程的时候,没有考虑用户输入数据的合法性问题,使得应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQLInjection,即SQL注入。1.SQL注入攻击的背景在信息技术高速发展的今天,各种各样复
3、杂的威胁网站技术也同时快速的“发展”,让人们防不胜防。攻击者利用网络的安全漏洞进行各种恶意活动,如账号盗用、私密信息截获、带宽资源占用等。严重破坏了网络的正常健康运行,危害十分严重。网站威胁的目标定位有多个维度,可以是个人、公司、某种行业,甚至国家、地区、性别、种族、宗教等。通常情况下攻击会采用多种形态,如病毒、蠕虫、特洛伊、间谍软件等或是他们的复合形态。可以分为内部攻击和外部攻击两类:1)内部攻击主要来自信任网络,可能是用户执行了未授权访问或是无意中定制了恶意攻击;2)外部攻击主要是由于网络漏洞被利用或者用户受到恶意程序制定者的专一攻击。2.SQL注入攻击的概
4、念SQL注入攻击源于英文“SQLInjectionAttack”。目前还没有看到一种标准的定义,常见的是对这种攻击形式、特点的描述。微软技术中心从两个方面进行了描述:1)脚本注入式的攻击;2)恶意用户输入用来影响被执行的SQL脚本。StephenKost给出了这种攻击形式的另一个特征,“从一个数据库获得未经授权的访问和直接检索”-7-。SQL注入攻击就其本质而言,他利用的工具是SQL的语法,针对的是应用程序开发者编程过程中的漏洞。“当攻击者能够操作数据,往应用程序中插入一些SQL语句时,SQL注入攻击就发生了”。SQL注入攻击是指黑客利用一些Web应用程序(论坛
5、,留言本,文章发布系统)中某些疏于防范的用户可以提交或修改的数据的页面,精心构造Sql语句,把特殊的SQL指令语句插入到系统实际SQL语句中并执行它,以获取用户密码等敏感信息,以及获取主机控制权限的攻击方法。3.SQL注入攻击特点1)广泛性SQL注入攻击利用的是SQL语法,因此只要是利用SQL语法的Web应用程序如果未对输入的SQL语句做严格的处理都会存在SQL注入漏洞,目前以Active/JavaServerPages、ColdFusionManagement、PHP、Perl等技术与SQLServer、Oracle、DB2、Sybase等数据库相结合的Web
6、应用程序均发现存在SQL注入漏洞。2)技术难度不高SQL注入技术公布后,网络上先后出现了多款SQL注入工具,例如教主的HDSI、NBSI、明小子的Domain等,利用这些工具软件可以轻易地对存在SQL注入的网站或者Web应用程序实施攻击,并最终获取其计算器的控制权。3)危害性大SQL注入攻击成功后,轻者只是更改网站首页等数据,重者通过网络渗透等攻击技术,可以获取公司或者企业机密数据信息,产生重大经济损失。4.SQL注入攻击的实现原理SQL注入攻击主要是通过构建特殊的输入,这些输入往往是SQL语法中的一些组合,这些输入将作为参数传入Web应用程序,通过执行SQL语
7、句而执行入侵者的想要的操作,下面以登录验证中的模块为例,说明SQL注入攻击的实现方法。在Web应用程序的登录验证程序中,一般有用户名(username)和密码(password)两个参数,程序会通过用户所提交输入的用户名和密码来执行授权操作。其原理是通过查找user表中的用户名(username)和密码(password)的结果来进行授权访问,典型的SQL查询语句为:Select*fromuserswhereusername='admin'andpassword='smith’如果分别给username和password赋值“admin'or1=1--”和“aa
8、a”。那么,SQL脚本解
此文档下载收益归作者所有