《网络攻击与防御》专题研究实验报告.docx
- 文档编号:24461232
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:18
- 大小:121.90KB
《网络攻击与防御》专题研究实验报告.docx
《《网络攻击与防御》专题研究实验报告.docx》由会员分享,可在线阅读,更多相关《《网络攻击与防御》专题研究实验报告.docx(18页珍藏版)》请在冰豆网上搜索。
《网络攻击与防御》专题研究实验报告
XXXXXXXXXXX学院
网络工程系
《网络攻击与防御》报告
——SQL注入攻击技术专题研究
学生:
XXXXXXXXXXX
班级:
XXXXXXXXXXX
撰写时间:
XXXXXXXXXX
摘要
由于现今信息技术发展迅速,网络安全越来越成为虚拟网络中不可或缺的一部分。
然而,因为各种Web服务器的漏洞与程序的非严密性,导致针对服务器的脚本攻击时间日益增多,其大多数是通过ASP或者PHP等脚本主图作为主要攻击手段,加之Web站点迅速膨胀的今天,基于两者的SQL注入也慢慢成为目前攻击的主流方式。
其应用方式主要集在利用服务端口接收用户输入的功能,将构造的语句传给数据库服务器,让其执行者开发者规定外的任务。
目前至少70%以上的Web站点存在着SQL注入的缺陷,恶意用户便可以利用服务器、数据库配置的疏漏和精心构造的非法语句通过程序或脚本侵入服务器获得网站管理员的权限和数据库的相关内容,严重的还可以获得整个服务器所在内网的系统信息,它们的存在不仅对数据库信息造成威胁,甚至还可以威胁到系统和用户本身。
本文针对SQL注入技术进行专题研究,进行工具注入和手动注入两种途径的实验分析。
全文共分为五个章节:
第一章为全文引言部分,简单介绍本次专题研究背景、来源以及研究意义;第二章阐述SQL注入技术的背景与网络环境;第三章详细介绍本次专题研究SQL注入攻击的实验过程和结果分析;第四章进行本次专题研究的总结及实验心得。
关键词:
SQL,注入,权限,网络攻击
Abstract
Duetotherapiddevelopmentofinformationtechnologytoday,networksecuritybecomeanintegralpartofthevirtualnetwork.However,becauseofvariousWebserverandprocedureoftheloopholesforserverrigorleadstoincreasingthescriptagainsttime,itsmostisthroughtheASPorPHPetcfeetasthemainattackmeansownerisgraph,togetherwiththerapidexpansionofWebpillowmat,basedonbothtodaySQLinjectionalsoslowlybecomethemainstreamway.AttackItsapplicationinthemainmeanssetbyserviceportsreceiveuserinputfunction,willconstructsentencestodatabaseserver,makeitsexecutivesdevelopersspecifiedtasks.
Atleastmorethan70percentoftheWebsiteexistdefectsofSQLinjection,malicioususerscanuseserver,databaseconfigurationthedefectsandelaboratestructureofillegalstatementsprogramsorscriptsinvadesserverbywebsiteadministratorpermissionsandobtainedthedatabase,seriousstillrelevantcontentcanbeobtainedinthewholeserverconnectionsysteminformation,theyexisttothreatennotonlydatabaseinformation,andeventhreatensystemsandusersitself.
ThispaperresearchprojectsinSQLinjectiontechnology,toolsandmanuallyinjectionintotheexperimentalanalysisoftwokindsofways.Fulltextisdividedintofivesections:
thefirstchapterforfulltextintroductionsection,andbrieflyintroducesthekeynoteresearchbackground,sourcesandresearchsignificance;ThesecondchapterSQLinjectiontechnologybackgroundpaperwithnetworkenvironment;ThethirdchapterofthisprojectareintroducedindetailSQLinjectionattackexperimentalprocessandresultanalysis;Thefourthchapterofthisprojectsummaryandexperimentalresult.
Keywords:
SQL,infuse,privileges,cyberattacks
目录
Abstract3
第一章引言5
1.1专题背景5
1.1.1网络安全的根源5
1.1.2网络信息安全的定义6
1.1.3网络信息安全的现状6
1.2专题来源于研究意义7
第二章SQL注入的背景与网络环境8
2.1SQL注入攻击网络背景8
2.1.1攻击平台Web网络架构8
2.1.2SQL数据库语言9
2.2SQL注入技术定义10
2.3SQL注入技术特点11
2.4SQL注入技术原理11
2.4.1SQL注入攻击实现原理11
2.4.2SQL注入攻击实现过程12
第三章SQL注入攻击实例分析13
3.1工具注入攻击13
3.1.1注入工具简介13
3.1.2SQL注入Access数据库实现过程14
3.1.3SQL注入MYSQL数据库实现过程17
3.2手动注入攻击21
3.2.1ACCESS数据库的注入22
3.2.2MSSQL数据库的注入24
第四章结束语24
参考文献25
第一章引言
由于Internet的普及与应用,通信技术和计算机网络技术得到了迅猛发展,特别是国际互联网的出现,使得计算机以前所未有的速度应用于如政府、商务、企业、教育、医疗等社会的各个领域,这些都深刻地影响着人们的经济、工作和生活方式。
而以计算机联网来交流信息的方式已经成为现代社会的主流趋势,信息化水平已经成为衡量一个国家现代化程度和综合国力的重要标志。
与此同时,网络的发展与信息化技术的提高也促使着网络运行与网络内容的安全这一关键性问题渐渐得到了人们的关注,信息安全也从起初简单的设计扩展到了多领域多层次的研究阶段。
1.1专题背景
1.1.1网络安全的根源
随着社会信息化的发展,现在不只是军事、政府、企业往来,甚至日常生活之间的信息交往都热切的需要信息安全技术的保障,出现这一局面的鱼啊您大致有以下几点:
(1)网络开放性引发的攻击。
因为越来越多拥有不同企图、不同背景的网络终端客户介入到互联网环境中,互联网已经不再是当初以科技和教育为初衷的校园互信环境,加之网络用户可以轻易的获取核心技术资料,开放源代码的应用程序,由于其公开代码的特点也使得众多准攻击者有了用武之地。
(2)协议自身的漏洞。
现今广泛应用的网络协议TCP/IP,它的设计初衷只是在一个可信的环境下使局域网络互联,网络的可靠性与可用性要明显优于安全性,这也是导致网络上如DDOS、IP欺骗、扫描。
监听等多种网络攻击发生的根源。
(3)关联与复杂性。
由于软件发展周期与技术水平的限制,可以说基本上所有软件在设计中都或多或少遗漏了某些计算机安全方面的问题,即是少数网络产品有足够的安全健壮性,但是由于网络关联性也会导致只需攻击其中最薄弱的环节就可以使整个体系瘫痪。
并且,当今操作系统的多样性和拓扑结构的复杂性也使得网络的安全配置十分艰难,攻击者可以轻易的隐藏自己达到其自身的攻击目的。
(4)安全意识。
广大网络用户普遍安全意识淡薄,这也是导致了黑客攻击层出不穷,利用计算机犯罪的案例与日俱增的主要原因之一。
1.1.2网络信息安全的定义
信息安全这个领域始于上个世纪60年代,起初只是对专用主机及其数据进行保护,本质上只是面向单机的。
发展到80年代,由于微机的广泛出现促成了局域网的发展,此时信息安全的侧重点是依靠技术与网络约定来进行保护,实施的范围相对狭小,而到了90年代,互联网的蓬勃发展,把各个地区的终端计算机用网络连接起来,实现了全球范围的资源共享,但信息在处理、传输、存储等网络各个环节方面都存在着脆弱性,极易被劫获、监听、篡改、删除或添加隐藏恶意代码等。
因此,可以说在进入21世纪后,信息安全才真正成为信息技术发展的核心任务。
国际标准化组织(ISO)也对信息安全作出了定义:
“为数据处理系统建立和采取的技术和管理的安全保护,保护计算机硬件、软件数据不因偶然和恶意的原因而遭到破坏、更改和泄露。
”
目前,从信息安全的特性上看,信息安全大致分为以下几个属性,当然随着科技的发展又加入了如可服务性等新概念。
1.1.3网络信息安全的现状
信息系统的安全对于整个社会、整个国家来说都具有巨大的现实意义,其中,无论从国家信息、个人隐私、公司机密等方面考虑,以数据库和Web服务器为基础的网络安全都已成为目前核心的安全问题。
数据库与Web技术是组成现代化信息系统的核心技术,企业、政府、个人之间的信息共享绝大部分都需要数据库与Web服务器的支持,信息系统安全中包括的四个基本属性对应在这两种技术安全考虑,可以理解为在服务器端要做到一切关于个人敏感信息只能被合法的用户获得,数据库的内容不能砸越权的情况下擅自修改,Web服务器动态处理函数正确的处理用户的请求,避免恶意代码的执行暴露敏感信息等等。
如果无法保障数据库与Web服务器的安全配置与服务,不但其自身的敏感信息会被窃取,其依托的操作系统也会面临严重的威胁。
所以,研究数据库与Web攻击的原理是迫切需要解决的课题。
1.2专题来源于研究意义
以数据库与Web为代表的计算机信息共享是当今信息传递的主要载体和传播方式,而数据信息又是社会发展需要的战略资源。
因此,围绕这两种技术的安全建设、使用与控制都成为影响企业,乃至国家利益的关键问题。
然而,基于它们的网络安全相关研究工作还远不能达到实际需求,其中很重要的原因就是由于前所未有的网络发展速度、攻击所涉及的技术也相对复杂、网络用户还没偶能力预测未来的攻击方式与途径,所以也就更没有能力在一个技术的高度上提出全面的解决方案。
结合现状,本文从几个方面进行网络数据库与Web服务器安全的价值:
(1)复杂的数据库系统。
由于当今数据库的复杂性,导致正确、万无一失的配置和安全维护变得十分艰难,这些没有检测出的安全隐患和不当的配置也给注入的网络攻击者留下了可趁之机。
(2)不完善的数据库服务器与操作系统数据的安全保障体系。
由于性能配置方式的多样性,在使用时很可能被注入攻击者调用系统函数,从而危及数据库与系统数据的安全,严重时可能会破坏其所在的整个拥有信用关系的网络体系。
(3)系统敏感信息的非法访问。
尤其在代表着政府形象和企业形象的Web服务器和数据库服务器,都保存着重要的数据信息,如果与Web服务器的搭配不恰当会被攻击者蓄意输入恶意代码导致敏感信息如电子货币、信用卡卡号的泄露,造成极大的社会危害。
另外,从网络攻击者的角度来研究安全防御措施,通过分析与利用攻击者的实施方法,把握攻击者的心理,对网络攻击进行深入研究、提高安全检测、主动防御的能力都具有重要意义。
对网络攻击的研究属于网络安全的灰色研究地带。
成果形式与研究方法也与IDS等应用性研究不同,但是却具有更高的学术价值,并会对相关安全产品起到积极的影响,有助于提高目前安全产品的性能。
而且从攻击的角度研究安全防御,改变了以往为防范研究防范措施的被动的繁育思想,使安全防御有着更强针对性。
第二章SQL注入的背景与网络环境
由于各种Web服务器的漏洞与程序的非严密性,导致针对服务器的脚本攻击时间日益增多,其大多数是通过ASP或者PHP等脚本主图作为主要攻击手段,加之Web站点迅速膨胀的今天,基于两者的SQL注入也慢慢成为目前攻击的主流,同样在Web服务器端程序的编写过程中普遍存在着编写者专注于功能的实现而忽略代码安全性检测的现象,导致大量提供交互操作Web服务器存在漏洞,其中至少70%以上的这样的站点存在着SQL注入的缺陷,恶意用户便可以利用服务器、数据库配置的疏漏和精心构造的非法语句通过程序或脚本侵入服务器获得网站管理员的权限和数据库的相关内容,严重的还可以获得整个服务器所在内网的系统信息,它们的存在不仅对数据库信息造成威胁,甚至还可以威胁到系统和用户本身。
2.1SQL注入攻击网络背景
2.1.1攻击平台Web网络架构
Web是WorldWideWeb(万维网)的简称,其基本采用C/S(客户/服务器)结构,总体结构由Web服务器端、客户终端和通信协议三大部分构成。
(1)Web服务器端。
Web服务器端是指驻留于因特网上的某种类型计算机程序。
复杂的Web服务器结构中规定了服务器的传输设定、信息传输格式以及服务器本身的基本开放结构。
Web服务器不仅能够存储信息、按用户需求返回信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序。
Web服务器的作用就是管理这些信息按用户的要求返回信息。
(2)客户终端。
所谓客户终端,就是用户普遍使用Web浏览器,主要用于向服务器端发送请求,并将接收到的信息进行解码、显示在浏览器上供用户查看。
浏览器是客户端的软件系统,它从Web服务器上传和下砸文件,并翻译下载文件中的HTML代码,进行格式化,根据HTML中的内容在屏幕上显示输出。
信息如果文件中包含特殊文件(如声音、视频等),Web浏览器会作相应的处理或依据所支持的插件进行必要的显示。
(3)HTTP文件传输协议。
图2.1网络C/S结构
Web浏览器与服务器之间遵循HTTP协议进行通讯传输,HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,是分布式Web应用的核心技术。
HTTP协议采用了请求/响应模型,即客户端向服务器端发送一个请求,报头包含有请求的方法、URL、协议版本,以及包含请求修饰符、客户信息和内容,其结构类似MIME消息。
服务器以一个状态行作为响应,返回给客户端浏览器。
该协议在TCP/IP协议栈中属于应用层协议。
2.1.2SQL数据库语言
SQL(StructuredQueryLanguage)即结构化查询语言,使用SQL编写应用程序可以完成数据库的管理工作。
它的主要功能是同各种数据库建立联系进行沟通,任何程序,无论它用什么形式的感激语言,只要目的是向数据库管理系统发出命令来获得数据库管理系统的响应,最终都必须体现以SQL语句的指令。
按照ANSI(美国国家标准协会)的规定,SQL语句是和关系型数据系统进行交互的标准语言。
SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据、从素具哭中提取数据等。
目前大多数流行的关系型数据库管理系统例如Oracle,MicrosoftSQLServer,Access等都采用了SQL语言标准,虽然很多数据库都对SQL语言进行了再开发和扩展,但是包括SELECT,INSERT,UPDATE,DELETE,CREATE,以及DROP在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。
2.2SQL注入技术定义
所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。
在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。
SQL注入(SQLInjection)技术在国外最早出现在1999年,我国在2002年后开始大量出现,目前没有对SQL注入技术的标准定义,微软中国技术中心从2个方面进行了描述。
(1)脚本注入式的攻击。
(2)恶意用户输入来影响被执行的SQL脚本。
ChrisAnley将SQL注入定义为,攻击者通过在查询操作中插入一系列的SQL语句到应用程序中来操作数据。
StephenKost[3]给出了SQL注入的一个特征,“从一个数据库获得XX的访问和直接检索”。
利用SQL注入技术来实施网络攻击常称为SQL注入攻击,其本质是利用Web应用程序中所输入的SQL语句的语法处理,针对的是Web应用程序开发者编程过程中未对SQL语句传入的参数做出严格的检查和处理所造成的。
习惯上将存在SQL注入点的程序或者网站称为SQL注入漏洞。
实际上,SQL注入是存在于有数据库连接的应用程序中的一种漏洞,攻击者通过在应用程序中预先定义好的查询语句结尾加上额外的SQL语句元素,欺骗数据库服务器执行非授权的查询。
这类应用程序一般是基于Web的应用程序,它允许用户输入查询条件,并将查询条件嵌入SQL请求语句中,发送到与该应用程序相关联的数据库服务器中去执行。
通过构造一些畸形的输入,攻击者能够操作这种请求语句去获取预先未知的结果。
2.3SQL注入技术特点
SQL注入攻击是目前网络攻击的主要手段之一,在一定程度上其安全风险高于缓冲区溢出漏洞,目前防火墙不能对SQL注入漏洞进行有效地防范。
防火墙为了使合法用户运行网络应用程序访问服务器端数据,必须允许从Internet到Web服务器的正向连接,因此一旦网络应用程序有注入漏洞,攻击者就可以直接访问数据库进而甚至能够获得数据库所在的服务器的访问权,因此在某些情况下,SQL注入攻击的风险要高于所有其他漏洞。
SQL注入攻击具有以下特点:
(1)广泛性。
SQL注入攻击利用的是SQL语法,因此只要是利用SQL语法的Web应用程序如果未对输入的SQL语句做严格的处理都会存在SQL注入漏洞,目前以Active/JavaServerPages、ColdFusionManagement、PHP、Perl等技术与SQLServer、Oracle、DB2、Sybase等数据库相结合的Web应用程序均发现存在SQL注入漏洞。
(2)技术难度不高。
SQL注入技术公布后,网络上先后出现了多款SQL注入工具,例如教主的HDSI、NBSI、明小子的Domain等,利用这些工具软件可以轻易地对存在SQL注入的网站或者Web应用程序实施攻击,并最终获取其计算器的控制权。
(3)危害性大,SQL注入攻击成功后,轻者只是更改网站首页等数据,重者通过网络渗透等攻击技术,可以获取公司或者企业机密数据信息,产生重大经济损失。
2.4SQL注入技术原理
2.4.1SQL注入攻击实现原理
结构化查询语言(SQL)是一种用来和数据库交互的文本语言,SQLInjection就是利用某些数据库的外部接口把用户数据插入到实际的数据库操作语言当中,从而达到入侵数据库乃至操作系统的目的。
它的产生主要是由于程序对用户输入的数据没有进行细致的过滤,导致非法数据的导入查询。
SQL注入攻击主要是通过构建特殊的输入,这些输入往往是SQL语法中的一些组合,这些输入将作为参数传入Web应用程序,通过执行SQL语句而执行入侵者的想要的操作,下面以登录验证中的模块为例,说明SQL注入攻击的实现方法。
在Web应用程序的登录验证程序中,一般有用户名(username)和密码(password)两个参数,程序会通过用户所提交输入的用户名和密码来执行授权操作。
其原理是通过查找user表中的用户名(username)和密码(password)的结果来进行授权访问,典型的SQL查询语句为:
Select*fromuserswhereusername='admin'andpassword='smith’
如果分别给username和password赋值“admin'or1=1--”和“aaa”。
那么,SQL脚本解释器中的上述语句就会变为:
select*fromuserswhereusername=’admin’or1=1--andpassword=’aaa’
该语句中进行了两个判断,只要一个条件成立,则就会执行成功,而1=1在逻辑判断上是恒成立的,后面的“——”表示注释,即后面所有的语句为注释语句。
同理通过在输入参数中构建SQL语法还可以删除数据库中的表,查询、插入和更新数据库中的数据等危险操作:
(1)jo';droptableauthors——如果存在authors表则删除。
(2)'unionselectsum(username)fromusers——从users表中查询出username的个数
(3)';insertintousersvalues(666,'attacker','foobar',0xffff)——在user表中插入值
(4)'unionselect@@version,1,1,1——查询数据库的版本
(5)'execmaster..xp_cmdshell'dir'——通过xp_cmdshell来执行dir命令
2.4.2SQL注入攻击实现过程
SQL注入攻击可以手工进行,也可以通过SQL注入攻击辅助软件如HDSI、Domain、NBSI等,其实现过程可以归纳为以下几个阶段:
(1)寻找SQL注入点;寻找SQL注入点的经典查找方法是在有参数传入的地方添加诸如“and1=1”、“and1=2”以及“’”等一些特殊字符,通过浏览器所返回的错误信息来判断是否存在SQL注入,如果返回错误,则表明程序未对输入的数据进行处理,绝大部分情况下都能进行注入。
(2)获取和验证SQL注入点;找到SQL注入点以后,需要进行SQL注入点的判断,常常采用2.1中的语句来进行验证。
(3)获取信息;获取信息是SQL注入中一个关键的部分,SQL注入中首先需要判断存在注入点的数据库是否支持多句查询、子查询、数据库用户账号、数据库用户权限。
如果用户权限为sa,且数据库中存在xp_cmdshell存储过程,则可以直接转(4)。
(4)实施直接控制;以SQLServer2000为例,如果实施注入攻击的数据库是SQLServer2000,且数据库用户为sa,则可以直接添加管理员账号、开放3389远程终端服务、生成文件等命令。
(5)间接进行控制。
间接控制主要是指通过SQL注入点不能执行DOS等命令,只能进行数据字段内容的猜测。
在Web应用程序中,为了方便用户的维护,一般都提供了后台管理功能,其后台管理验证用户和口令都会保存在数据库中,通过猜测可以获取这些内容,如果获取的是明文的口令,则可以通过后台中的上传
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络攻击与防御 网络 攻击 防御 专题研究 实验 报告