(计算机软件与理论专业论文)基于ajax站点的安全检测系统的研究与实现.pdf_第1页
(计算机软件与理论专业论文)基于ajax站点的安全检测系统的研究与实现.pdf_第2页
(计算机软件与理论专业论文)基于ajax站点的安全检测系统的研究与实现.pdf_第3页
(计算机软件与理论专业论文)基于ajax站点的安全检测系统的研究与实现.pdf_第4页
(计算机软件与理论专业论文)基于ajax站点的安全检测系统的研究与实现.pdf_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

基于a j a x 站点的安全检测系统的研究与实现 学科:计算机软件与理论 研究生签字: 时径 指导教师签字:狱力 摘要 随着网络通信与计算机技术的飞速发展,w e b 服务的种类也逐渐多样化。传统的 w e b 技术由于互动性和实时性的缺陷,已经无法满足现实的需要。 在传统的w e b 服务中,所有的用户请求都交给服务端去处理,而服务端处理能力有 限,导致用户长时间的等待,使得信息的实时性大幅度降低。有了异步传输技术a j a x ( a s y n c h r o n o u sj a v a s c r i p ta n dx m l ) ,把一部分服务端所处理的任务交给客户端处理,从 而减轻服务器处理量,也减少了用户的等待时间。对那些需要处理海量数据的站点,a j a x 技术的应用有着重要的意义。如目前所流行的电子商务站点,企业管理站点,电子邮件站 点,都属于由a j a x 技术搭建起来的站点。 这些由a j a x 技术搭建起来站点让用户高速获取信息的同时,也带来了许多的安全 问题。针对a j a x 站点下的数据库漏洞攻击,跨站攻击,拒绝服务攻击等等黑客攻击不 断发生,造成了重要信息的泄露,服务器瘫痪等等的严重危害。因此,确保a j a x 站点 的安全性是网络安全研究的一个新方向。 本文就是针对a j a x 站点所面临的安全问题进行研究,通过对a j a x 站点的s q l 注 入,x m l 注入和x s s 跨站攻击等漏洞原理进行分析,给出了a j a x 站点的安全检测系统 的总体设计方案。在整个系统的设计中,使用网络攻击脚本语言( n e t w o r k a t t a c ks c r i p t i n g l a n g u a g e ) 编写的脚本插件模拟黑客攻击对a j a x 站点进行安全检测,并将漏洞信息以报 告形式提交给网络管理员,使其对a j a x 站点进行有效地安全维护。 关键字:异步传输技术;安全漏洞;网络攻击脚本语言;插件技术 r e s e a r c ha n di m p l e m e n t a t i o no fn e t w o r ks e c u r i t ys c a n n i n g s y s t e mb a s e do na j a x s i t e s d i s c i p l i n e :c o m p u t e rs o f t w a r ea n dt h e o r y s t u d e n ts i g n a t ur e : s u p e r v i s o rs i g n a t u r e :弓 厶2 九咖 a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to fn e t w o r kc o m m u n i c a t i o na n dc o m p u t e rt e c h n o l o g y , w e b s e r v i c e sh a v eb e c o m em o r ea n dm o r ed i v e r s i f i e d t r a d i t i o n a lw e bt e c h n o l o g yc a nn o tm a t c h t h er e q u i r e m e n to ft h em o d e mn e t w o r kd u et ot h el i m i t a t i o no ni n t e r a c t i o na n dr e a lt i m i n g i nt h et r a d i t i o n a lw e bs e r v i c e s ,a l lt h eu s e r s r e q u e s t sa r es e n tt os e r v e rw h i c hh a sl i m i t e d a b i l i t yt od e a l 、i lt h o s er e q u e s t s ,s oi tm a k e su s e r ss p e n tm o r et i m eo nw a i t i n ga n d r e d u c e st h e i n f o r m a t i o nr e a l t i m es i g n i f i c a n t l y w i t han e wt e c h n o l o g yc a l l e da j a x ( a s y n c h r o n o u s j a v a s c r i p ta n dx m l ) ,i ta l l o w st h ec l i e n t st od e a lw i t hs o m er e q u e s t so fu s e r sa n ds a v e su s e r s w a i t i n gt i m e a j a xi si m p o r t a n tf o rm a n ys i t e s ,f o re x a m p l e ,e c o m m e r c es i t e s ,e n t e r p r i s e m a n a g e m e n ts i t e sa n de - m a i ls i t e sa r eb u i l tb ya j a x t h o s es i t e sw h i c ha l eb u i hu pb ya j a xt e c h n o l o g ya l l o w su s e r st oa c c e s st oi n f o r m a t i o n e f f i c i e n t l y ,w h i l ea tt h es a m et i m ei ta l s ob r i n g sm u c ho ft h es e c u r i t yi s s u e s l o t so fa t t a c k s a i m st oa j a xs i t e sb yh a c k e r s ,s u c ha ss q ld a t a b a s ea t t a c k s ,c r o s s s i t ea t t a c k sa n dd e n i a lo f s e r v i c ea t t a c k s ,m a k i n gt h ei m p o r t a n ti n f o r m a t i o nl o s ta n ds e r v e r ss h u td o w n t h e r e f o r e ,i ti sa n e wd i r e c t i o nt os t u d yh o wt oe n s u r ea j a xs i t e ss a f ei nt h ef i e l do fn e t w o r ks e c u r i t y t h i sp a p e rm a i n l yr e s e a r c h e so ns e c u r i t yi s s u e so ft h ea j a xs i t e sb ya n a l y z i n gt h e p r i n c i p i ao ft h es q ld a t a b a s ea t t a c k s ,x m la t t a c k sa n dx s sc r o s s - s i t ea t t a c k s ,a n dt h e ng i v e s ad e s i g no ft h es e c u r i t ys c a n n i n gs y s t e mf o ra j a xs i t e s a tt h i sd e s i g no f s y s t e m ,w ew i l lm a k e u s eo f p l u g i n s ,w h i c hm a d eu pb yt h en e t w o r ka t t a c ks c r i p t i n gl a n g u a g et om o d i f ys e c u r i t y d e t e c t i o na n ds i m u l a t i n ga t t a c k so fh a c k so nt h ea j a xs i t e t h ed e t e c t e dv u l n e r a b i l i t i e sw i l lb e s u b m i t t e dt ot h en e t w o r ka d m i n i s t r a t o rb yt h ef o r mo fa r e p o r t ,a n dt h e nt h ea d m i n i s t r a t o r c a r l u p d a t et h ea j a x s i t ei m m e d i a t e l y k e yw o r d s :a j a xt e c h n o l o g y ;s e c u r i t yv u l n e r a b i l i t i e s ;n e t w o r ka t t a c ks c r i p t i n gl a n g u a g e ; p l u g - i n st e c h n o l o g y 学位论文知识产权声明 学位论文知识产权声明 本人完全了解西安工业大学有关保护知识产权的规定,即:研究生在校攻读学位期间 学位论文工作的知识产权属于西安工业大学。本人保证毕业离校后,使用学位论文工作成 果或用学位论文工作成果发表论文时署名单位仍然为西安工业大学。学校有权保留送( 提) 交的学位论文,并对学位论文进行二次文献加工供其他读者查阅和借阅;学校可以在网络 上公布学位论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存学位论文。 ( 保密的学位论文在解密后应遵守此规定) 学位论文作者签名: 孪缸豇 指导教师签名:万,劣二a l 日期:m 7 每午i l2 1 雠 5 2 学位论文独创性声明 学位论文独创性声明 秉承学校严谨的学风与优良的科学道德,本人声明所呈交的学位论文是我个人在导师 指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地 方外,学位论文中不包含其他人已经发表或撰写过的成果,不包含本人已申请学位或他人 已申请学位或其他用途使用过的成果。与我一同工作的同志对本研究所做的任何贡献均已 在论文中作了明确的说明并表示了致谢。 学位论文与资料若有不实之处,本人承担一切相关责任。 学位论文作者签名: 寿i 矗各 指导教师签名:乡产龙,伊2 日期:湖7 午日 7 母 5 3 1 绪论 1 绪论 1 1 国内外网络安全现状 黑客攻击、计算机病毒破坏和网络金融犯罪已构成对世界各国的实际威胁。在各领域 的计算机犯罪和网络侵权方面,无论是数量、手段,还是性质、规模,都到了令人咋舌的 地步。据统计,全球平均每2 0 秒就发生1 次网上入侵事件,黑客一旦找到系统的薄弱环 节,所有用户均会遭殃。而且近年来,黑客攻击己从单一的利用计算机病毒搞破坏和用黑 客手段进行入侵攻击转变为使用恶意代码与黑客攻击手段结合的方式,使得这种攻击具有 传播速度快、受害面广和穿透力强的特点,往往一次攻击就能给受害者带来严重的破坏和 损失。 我国虽然在网络建设方面发展迅速,取得了巨大的成绩。但是,由于基础薄弱,工作 人员防范意识淡薄,安全隐患巨大,计算机系统也多采用开放式的操作系统,安全级别较 低,很难抵抗黑客的攻击。目前我国9 5 的网络管理中心都遭受过境内外黑客的攻击或 侵入,其中银行、金融和证券机构是黑客攻击的重点。另外,网络安全存在的严重隐患还 表现在,不能快速有效抑制各种计算机病毒的入侵,2 0 0 3 年爆发的“蠕虫王 、“冲击波 病毒,2 0 0 4 年5 月爆发的“网络天空 、“震荡波 病毒,以及2 0 0 5 年8 月爆发的利用微 软漏洞攻击电脑的病毒“狙击波”等病毒及其变种,都给计算机用户造成了较严重的损失。 根据国家计算机病毒应急处理中心的调查显示:2 0 0 3 年中国计算机病毒感染率高达 5 5 7 ,因病毒感染造成经济损失的比率达到了6 3 5 7 f 。所以说,我国面临的网络安全 问题是非常严峻的。 1 2 现有的安全技术 我们要保护网络的安全,不能单独地依靠某一种技术或方法,而应该从各个层面来提 高整体的安全性。综合来看,目前最常用的网络安全防护技术主要有两种: 1 ) 防范技术 主动防范黑客入侵,例如防火墙、物理隔离等。 2 ) 检测技术 帮助网络管理员检测网络的脆弱性,例如漏洞检测器、端口检测器等。 以上两种技术构架了网络安全防御的综合体系结构,缺一不可。防范技术属于第一级 的防护措施,它的功能主要是阻断非法的连接,是主动防范的措施。但是,防火墙存在一 些不足之处,首先是容易被黑客研究其结构;其次是一旦防火墙被攻陷,如果没有其他保 护措施,则内部网络将暴露无遗;最后是对网络内部的安全隐患并不能有效的控制。检测 技术相对于前种技术更为灵活,它是一种主动的防范措施,是一个网络安全的评估系统, 两安t 业大学硕十学位论文 其主要功能是探测网络安全的隐患,能够在黑客攻击前对系统和网络进行安全检测,分析 它们存在的安全问题,及早发现漏洞并加以改进,防患于未然。只有将这两种技术有机地 结合起来,才能更为有效地提高网络的整体安全。 综上所述,漏洞检测可以发现系统潜在的安全漏洞,防忠于未然,是网络安全的重要 技术之,对安全漏洞检测技术的研究具有重要的意义。 1 3 研究背景 随着计算机信息技术和网络技术的高速发展,i n t e m e t 已经遍布世界每一个角落,为 全球用户提供着多样化的网络信息服务,并在经济,军事,教育等领域,发挥着着重要作 用。 近些年i n t e r n e t 进入高速发展期,新技术不断涌现。以异步传输技术一一a j a x ( a s y n c h r o n o u sj a v a s c r i p ta n dx m l ) 为代表的网络技术的出现,标志着互联网由传统时 代进入w e b 2 0 时代。自2 0 0 5 年开始,由g o o g l e 公司发起,a p a c h e ,微软等组织或公司 推广的a j a x 框架技术,迅速在国内外各个大小网站得到了普及,无论是目前流行电子 商务,还是e - m a i l 服务,随处可见a j a x 技术搭建的页面和服务【2 1 。a j a x 技术极大地提 高了网页的动态交互性,并提供给用户远胜于传统h t t pw e b 页面的全新操作体验。但 a j a x 技术在带来这些操作和性能上的优点的同时,也引入一些容易让人忽视的安全问 题,而一些在传统w e b 应用中威胁度级别并不高的安全问题,也随着a j a x 框架本身固 有的一些特性,变得更容易被攻击。 随着a j a x 技术在网络上发挥着越来越重要的作用,一些大型的企业信息管理站点, 电子商务站点,电子邮件都使用到了a j a x 技术。正是看中了a j a x 技术背后巨大的利 益,黑客通过攻击a j a x 站点自身的一些安全漏洞,如s q l 漏洞,x m l 注入漏洞,以及 x s s 跨站攻击漏洞,进入各种站点,盗取重要文件,商业机密,个人账户密码等重要信 息,给企业和个人造成了巨大损失。那么,如何才能有效的阻止黑客的攻击,保证信息的 安全性,这也是近些年网络安全发展的新方向。 1 4 论文的目标和意义 1 ) 研究的目标 通过对插件技术的研究,将要实现一个对a j a x 站点安全漏洞检测的系统。插件是 网络攻击脚本语言( n a s l ) 所编写的检测脚本,在检测过程中来模拟黑客攻击,进行安 全漏洞检测。 2 ) 研究的意义 随着异步传输( a j a x ) 技术的广泛应用,通过其搭建的站点也越来越多,但是其产 生的安全问题也随之增多,黑客可以通过a j a x 技术的各种安全漏洞,轻而易举进入各 种a j a x 站点,盗取重要信息。 2 1 绪论 本文正是针对a j a x 站点的漏洞,而设计出来的安全检测系统。本系统通过的对a j a x 站点可能产生的漏洞进行安全检测,并将检测出来的漏洞以报告形式提交给网络管理员, 使其能够及时有效地对a j a x 站点进行安全维护,避免重要信息泄露,在网络信息安全 方面有着现实意义。 1 5 论文研究的主要内容 本文在研究a j a x 站点安全漏洞攻击原理和插件技术的基础上,给出了a j a x 站点 的安全检测分析系统的总体设计方案。系统的实现主要采用了n a s l 语言编写的插件脚 本,通过调用插件来模拟黑客攻击,对a j a x 站点进行安全检测。 具体来说,本文的研究内容如下: 1 ) 深入地分析了a j a x 站点漏洞产生的原理。 2 ) 研究了论文涉及的关键技术:插件技术,i c m p 扫射技术,端口检测技术。 3 ) 在研究了a j a x 站点的漏洞原理和漏洞检测插件技术的基础上,给出了基于a j a x 系统的安全检测系统的总体设计方案。对本系统的各个模块的实现做了比较详细的陈述。 在进行a j a x 站点安全漏洞检测前,先进行p i n g 连通测试和端口检测。p i n g 连通测试主 机是否处于活跃状态,端口检测收集活跃主机的开放端口服务信息,在漏洞检测时,调用 漏洞检测脚本,模拟黑客攻击对a j a x 系统漏洞进行安全检测。 4 ) 对本系统进行测试,通过a j a x 站点进行安全检测,发现了相关的漏洞,并以报 告形式提交给网络管理员。 1 6 论文的组织结构 论文分为6 章: 第一章,介绍课题研究背景,主要研究内容及其意义。 第二章,通过对异步传输( a j a x ) 技术原理的阐述引出a j a x 站点可能存在的安全 问题。 第三章,阐述了a j a x 站点的安全分析系统所涉及的关键技术。 第四章,阐述了a j a x 站点安全分析系统平台的设计。 第五章,阐述了a j a x 站点安全分析系统的各个功能模块的具体实现。 第六章,总结整个平台开发和论文工作,并指出未来将发展的方向。 3 西安j 】:业人学硕士学位论文 2a j a x 站点及其安全问题简介 2 1 异步传输( a j a x ) 技术简介 a j a x 是a s y n c h r o n o u sj a v a s c r i p ta n dx m l 的缩写,是一种运用j a v a s c r i p t 和可扩展 标记语言m l ) ,在浏览器和服务器之间的异步传送或接收数据的技术。由于传统w e b 应用程序在实现中无可避免的等待机制等待服务器响应,等待屏幕刷新,等待请求返 回和生成新的页面,使得其发展得到了很大的制约。与传统w e b 不同,a j a x 技术通过 w e b 服务器传输给客户端的往往不是完整的w e b 页面,而是通过x m l 或者是j a v a s c f i p t 散列所封装的数据,这些数据通过浏览器支持的j a v a s c f i p t 的引擎解析,动态显示在当前 页面上,从而使得w e b 应用程序达到了桌面应用程序的高交互性和实时性p j 。 a j a x 应用程序主要包含了以下几种技术: 1 ) j a v a s c r i p t 代码技术:是通用的脚本语言,是运行a j a x 应用程序的核心代码,将 其它的技术捏合在起,帮助改进与服务器应用程序的通信。 2 ) c s s 层叠样式表技术:为w e b 页面元素提供了一种可重用的可视化样式的定义 方法。用于统一修改用户的界面样式。 3 ) 文档对象模型d o m 技术:通过j a v a s c d p t 代码来处理h t m l 结构的数据和服务 器返回的x m l 数据。 4 ) x m l h t t p r e q u e s t 对象技术:允许w e b 程序员从w e b 服务器以后台方式获取数 据。数据格式通常是x m l ,但也可以很好的支持任何基于文本的数据格式。 图2 1a j a x 站点的框架图 对用户而言,由于工作流程变成了异步处理,他们可以在浏览器后台与服务器进行通 信的同时,继续自己的操作而不被刷新打断( l - t ;如,当用户正在浏览g o o g l e e a r t h 时,用 户拖动地图,浏览器便在后台请求新的地图照片,此时用户以继续拖动地图) ,而一旦来 4 2a j a x 站点及其安全问题简介 自服务器的数据经客户端a j a x 引擎解析完毕,就能随时刷新显示在当前页面上。其工 作流程如图2 2 所示。 | 驻务端 图2 2a j a xw e b 的工作流程图 由a j a x 技术所搭建起来的站点,我们简称为a j a x 站点,如电子商务站点,企业 管理站点等等,a j a x 站点给用户带来了高速获取信息体验的同时,也产生了一些安全问 题,下文将着重分析a j a x 站点的安全问题【4 】。 2 2a j a x 站点存在的安全问题 a j a x 站点相对于传统w e b 站点的优点是显而易见的。首先,a j a x 站点所提供服 务是异步的网络服务,客户端可以当用户在前台操作的同时,在后台和服务端进行通信, 并实时的把服务端返回的信息显示在浏览器上;其次,a j a x 架构中,客户端和服务端传 输的不是整个的h t m l 页面,而是经过封装的小段数据,大大降低了网络的通信负荷。 相对于传统的w e b 服务,a j a x 服务也带来许多安全问题,原本在传统站点具有的 s q l 漏洞,x m l 注入漏洞,以及x s s 跨站攻击漏洞在a j a x 站点更容易发生。 2 2 1a j a x 站点的s q l 注入问题 在基于a j a x 技术的站点中,其客户端和服务端通信都是在后台进行,有经验的黑 客通过分析客户端的源代码,可以轻而易举的获取客户端送到服务端的所有请求字符串。 这些请求的字符串与传统w e b 有所不同,一共分为两种情况: 1 ) 和传统w e b 类似的字符串输入式查询,这种查询常见于登陆系统,内容可以由 用户任意输入,无论是通过p o s t 方式还是g e t 方式的查询,用户可以在文本框中直接 输入字符串进行漏洞的试探,这种类型的查询在传统w e b 服务中,通常在服务端有很严 格的检查,而在a j a x 站点中,同样的检查一样是必须而有效的。 5 两安下业大学硕十学位论文 2 ) 类似于g o o g l em a p 的自动后台请求查询,这种查询的值往往由客户端的j a v a s c f i p t 内置,用户无法直接在页面中输入非标准的值向服务端请求数据。举例来说,一个国际连 锁零售公司开发了一个导购网站,这个网站显示一张世界地图,而这张地图可以被用户用 鼠标拖动,当用户的鼠标焦点落在某个国家范围内,则页面将显示这个公司在此国家内所 能提供的商品列表。下面这段c 代码显示了服务端进行数据库请求时的代码: s y s t e m w e b s e r v i c e s w e b m e t h o d p u b l i cs y s t e m c o l l e c t i o n s i e n u m e r a b l e g e t p r o d u c t s ( s t r i n gc o u n t r y ) u p d a t et h es e l e c tc o m m a n dt ou s et h ec o u n t r yp a r a m e t e r t h i s s q l d a t a s o u r c e1 s e l e c t c o m m a n d = ”s e l e c t 木f r o m 【p r o d u c t 】w h e r ec o u 肋3 一”+ c o u n t r y + ”; q u e r yt h ed a t a b a s ea n dr e t u r nt h er e s u l t s r e t u mt h i s s q l d a t a s o u r c e l s e l e c t ( d a t a s o u r c e s e l e c t a r g u m e n t s e m p t y ) ; 显然,这段代码未对c o u n t r y 关键字段值的有效性进行检验,因此具有s q l 注入的漏 洞。攻击者不但可以通过构造c o u n t r y 的值,取得客户姓名,地址和信用卡号,甚至可以 修改商品的价格或者删除整个数据库中的条目。 尽管通过普通的浏览器无法修改c o u n t r y 的值,但是由于c o u n t r y 依然是通过h 丌p 的g e t 和p o s t 的方法发送到w e b 服务器,攻击者可以通过修改客户端j a v a s c f i p t 的源 代码来修改x m l h t t p r e q u e s t 对象发送到w e b 服务器的值。或者,攻击者可以从当前 的w e b 页面中截取相应地址,并依据传统的s q l 注入法,用n e t c a t 或t e l n e t 这类工具向 被截取地址输入类似于带“c o u n t 旷xo r1 = 1 等的查询字符串来查找注入点,最后向 此地址发送带有特殊任务c o u n t r y 字符串的w e b 请求,完成攻击任到5 。 2 2 2a j a x 站点的x m l 注入问题 有些a j a x 站点的服务程序使用x m l 文件中封装的数据进行验证,而在读取x m l 内封装的数据则使用了x p a t h 技术,和s q l 注入类似,如果w e b 服务端对客户端输入 的数据没有进行有效过滤,则会引起x m l 注入问题 6 1 。 x m l 文本通常使用层级的树状结构来储存数据,对于每个具体封装的数据,只要获 得其在树状结构中所有的父结点就能得到其值,而这些由父结点组成的序列,便被称为数 据的路径( p a t h ) ,这就是x p a t h 技术解析x m l 的原理。下面的表中列举了一个x m l 数据结构: l zl2 3 6 2a j a x 站点及其安全问题简介 l2 312 3 a d m i n w q 4 5 6 4 5 6 4 5 6 u s e r 服务端程序使用c 群作为后台语言对x m l 文件信息进行查询,如果查询的是用户名 和密码,则查询的语句如下: s t r i n gf i n d u s e r x p a t h ; f i n d u s e r x p a t h = ”e m p l o y e e u s e r n a m e t e x t o = 川+ r e q u e s t ( ”u s e m a m e ”) + a n d p a s s w o r d t e x t 0 = + r e q u e s t ( ”p a s s w o r d ”) + 】t ; 其中,r e q u e s t ( ”u s e m a m e ”) 和r e q u e s t ( ”p a s s w o r d ”) 是用户在w e b 表单内输入的值,和 s q l 查询类似,如果结果为真,则说明用户可以被认证,反之则说明用户名或者密码错 误,不给与用户权限。 然而,这个查询语句没有对用户的输入做检查,若用户在表单中输入: u s e m a m e :h io r1 = 1o r a t = a p a s s w o r d :h i 则查询字符串即刻便成了: e m p l o y e e u s e r n a m e t e x t o = h i o r1 = 1o r a = a a n dp a s s w o r d t e x t 0 2 h i 】, 而这个字符串,在逻辑上等价于: e m p l o y e e ( u s e r n a m e t e x t 0 = h i o r1 = 1 ) o r ( 。a k a a n dp a s s w o r d t e x t 0 _ h i ) 】 而这个字符串无论如何查询,返回结果总为真,导致恶意攻击者取得了不应有的权限。 解决x m l 注入问题和解决s q l 注入问题的方法类似,即认真过滤检验用户在表单 中提交的数据,并根据x p a t h 查询字符串语法进行替换,在上述例子中只要将单引号替 换成& a p o s 就可以在一定程度上解决注入的问题。 x m l 注入问题虽然原理简单,也容易防范,但是在a j a x 框架系统中发生概率和危 害程度却要比传统的w e b 应用高得多。大多数a j a x 框架使用x m l 来传输数据,因此 为了减少格式转换的开销,许多数据在数据服务器上也采用x m l 的格式。而在传统w e b 应用中,直接存储为x m l 的数据则少的多。和s q l 的问题相似,a j a x 技术的高交互性, 后台异步交互的特性,使得x m l 注入的方法更自动化,更为隐蔽。x m l 注入问题在传 统w r e b 应用中很少被提起,非常容易被忽略7 1 。 7 两安t 业大学硕十学位论文 2 2 3a j a x 站点的跨站脚本攻击( x s s ) 问题 跨站脚本攻击( x s s ) 并不是一个新型的攻击手段,然而它在过去的几年中,始终被安 全人员所忽视。在传统的w e b 应用中,跨站脚本攻击主要用于盗取c o o k i e ,称为会话 劫持,其必须要用户对w e b 进行刷新才能被触发,故并不造成很大的威胁。但是在a j a x 框架的w e b 应用中,由于w e b 页面在j a v a s c r i p t 和x m l h t t p r e q u e s t 对象的控制下, 拥有了无需用户交互而直接向w e b 服务器进行h t t p 请求的能力,因此危险程度较传统 w e b 架构下大大提高,下文将着重介绍x s s 的原理和其在a j a x 中的危害垆j 。 x s s 又叫c s s ( c r o s ss i t es c r i p t ) ,跨站脚本攻击。它指的是恶意攻击者往w e b 页面 里插入恶意h t m l 代码,当用户浏览该页之时,嵌入w e b 里的h t m l 代码会被执行, 从而达到特殊目的,其流程如图2 3 所示。 恶意的h t m l 输入w e b 程序| 进入数据库w e b 程序 用户浏览器 图2 3x s s 攻击的流程图 x s s 和s q l 注入类似,同样源于w e b 服务端没有对用户输入的字段进行严格检测 和过滤所致,只不过检测的内容有所区别,s q l 注入的是s q l 代码,而x s s 插入的是 h t m l 标签和j a v a s c r i p t 代码,这就要求w 曲服务端不但要对用户的输入进行s q l 语句 的检测,还要进行h t t p 标签和j a v a s c r i p t 代码的检测。如果w 曲服务器没有对任何用户 输入的值作h t m l 标签和j a v a s c f i p t 代码的检测,最简单的代码可以仅仅一句h t t p 请求 来实现: h t t p :w w w f o o c o r n s e a r c h a s p ? v a l u e = a l e r t ( d o c u m e n t c o o k i e ) 这个请求如果被w e b 服务端所接受,将会在返回的网页的v a l u e 值处插入a l e r t 的 j a v a s c r i p t 代码,最终将用户在当前页面下c o o k i e 中所记载的内容打印在提示框中。此 时w e b 服务端可以对“ 进行过滤,而消除插入a l e r t 代码被执行的必要条件。 不过这样简单的过滤很容易被攻击者所洞穿,比如将“ ”等特殊字符修改成对 应的a s c i i 码号,将上述的请求变为: h t t p :w w w f o o c o m s e a r c h a s p ? v a l u e - - 3 c s c r i p t 3 e a l e r t 2 8 d o c u m e n t 2 e c o o k i e 2 9 3 c 2 f s c r i p t 3 e 同样能达到注入的效果。而这样的请求甚至有可能自动在网页被加载时被触发,这是 因为,在h t m l 标签中,i m g 和i f r a m e 允许网页在被载入时自动请求到一个新的连接, 当攻击者将被攻击的网页注入成如此诸如下情况时: 8 2a j a x 站点及其安全问题简介 用户的浏览器便会在装载网页时,自动跳转到w w w f o o c o m 的网站,并弹出包含当 前网页c o o k i e 信息的提示框。若改变一下程序的结构,是把弹出提示框中的内容提交 到攻击者预先设置的w w w f o o c o r n 网站,那么用户在当前c o o k i e 中的所有隐秘信息都 将完全暴露给攻击者,这就是传统w e b 服务中常见的x s sc o o k i e 盗取攻击,插入脚本如 下: 。 由于j a v a s c r i p t 脚本可以自我创建h t t p 的请求,而请求的格式又与对客户端脚本完 全一致,因此w e b 服务端根本无法辨别哪些请求来自那里,如果来自一个恶意j a v a s c d p t 脚本所创建的x m l h t t p r e q u e s t 对象的连接,用户根本无法从浏览器的状态得知是否遭 到了x s s 的攻击。 所有在网页内部被j a v a s c r i p t 创建的h t t p 请求都能自动享有浏览器 当前的状态( 包括被认证状态和被授权状态) ,而恶意脚本可以利用这些特权和w e b 服 务端进行通信。虽然基于i f r a m e 标签的x s s 攻击也可以在后台和w e b 服务端进行通信, 但是此通信仅仅只能在h t m l 页面在载入时被触发一次,其后如果用户不手动刷新页面, 就无法进行后续攻击【9 1 。而基于a j a x 技术的脚本攻击则不同,恶意j a v a s c f i p t 脚本可以 根据服务端返回内容的不同,动态创建不同的新请求再次与w e b 服务端进行通信,因而 具有了交互的能力。可见,j a v a s c r i p t 这种可以自我创建h 1 v r p 请求的新特性,大大扩大 了x s s 在w e b 应用中的危害和影响。 不但a j a x 站点使得恶意脚本攻击变得容易,而且其动态交互的特性使得恶意脚本 在后台截取用户输入成为可能。在传统的w e b 应用中,许多客户端的信息觅取只能通过 抓屏等方法实现,而抓屏的实现更是需要用户不经意下载恶意的a c t i v e x 控件才能完成, 如果用户禁用a c t i v e x 控件的话,就几乎无法获取用户在客户端的输入。( 事实上,在局 域网还可以采取嗅探的方法,但是在互联网上不可行) 然而,基于a j a x 技术站点的网 页中一旦被嵌入恶意的j a v a s c r i p t 脚本,脚本本身可以通过g e t e l e m e n t b y i d 函数获得网页 所有元素的值,还能通过动态构建h t t p 请求将这些值发送到攻击者实现构建好的网站 上,达到了盗取用户信息的目的。特别要指出的是,此方法虽然也要用户开启浏览器的 j a v a s c r i p t 执行许可才能实施,但是鉴于目前基本所有用户的浏览器设置都允许j a v a s c r i p t 执行,因此成功率比截取屏幕的方法的成功率高,隐蔽性也高( 很少有用户会在没有异常 的情况下会查看网页源代码) 。 a j a x 站点也使得x s s 的传播( 包括恶意脚本的注入) 变得更为容易。在传统的w e b 应用中,攻击者通常必须手动在w e b 服务器中注入恶意脚本【l 们。通常的步骤是: 1 ) 攻击者手动或者借助工具查询w e b 应用中能被注入的点。 2 ) 编写恶意脚本并提交。 3 ) 攻击者被动等待其他用户触发其提交的恶意代码,手动执行后续攻击。 这样的攻击步骤最大的缺点是效率低,传播范围小,取得的攻击成果也相当有限。所 以即使x s s 的历史和s q l 注入几乎有一样的历史,但是其影响和受关注程度却不可同日 9 两安工业大学硕士学位论文 而语。 然而在a j a x 站点中,x s s 却能像病毒一样的传播。x s s 的恶意脚本能利用a j a x 引擎,自动地将其注入到w e b 页面中去,并能非常容易地在同一台主机中不断地注入进 行x s s 攻击,正如上面所述,所有的注入攻击都不会触发w e b 页面的刷新,因而攻击 对普通用户来说是不可见的,所以对a j a x 框架的x s s 攻击而言,其特征更像是蠕虫病 毒而不是用户主动攻击。 在技术方面,a j a x 技术是基于w e b 服务的技术,因此其安全问题主要属于w e b 服务的攻击,有些安全问题继承于传统的w e b 服务,还有一些是a j a x 技术本身引入的 安全问题。 2 2 4a j a x 站点域发送请求问题 a j a x 站点最大的安全限制在于x m l h t t p r e q u e s t 对象只能向包含自身的网页的同 域名地址发送请求,这是因为防止客户端利用当前网页中保存的c o o k i e 或者s e s s i o n 信息 向第三方网址发送请求而暴露了用户的信息。然而,突破口依然存在i l i 】。主要方法有三 个: 1 ) 利用f l a s h 来发送数据 尽管f l a s h 也使用了类似x m l h t t p r e q u e s t 对象的同域请求限制的策略,但是可 以在远端主机部署c r o s s c d o m a i n x m l 来消除这个限制而在信息觅取时,远程主机往往由攻 击者布置,因此建立c r o s s c d o m a i n x m l 易如反掌,其结构如图2 4 所示。 图2 4e r o s s d o m a i n x m l 结构 f l a s h 提供了a c t i o n s c r i p t 具有强大的功能,例如,其自带的x m l s e n d a n d l o a d 函 数在第三方网站拥有c r o s s c d o m a i n x m l 的情况下,允许其进行x m l 的读写,而且其还可以 内嵌j a v a s c r i p t 代码,实现更强的功能。对于某些允许上传f l a s h 并显示的网站( 比如某 些b b s ) ,恶意攻击者可以通过上转自制恶意f l a s h 来达到和第三方通信的目的。 不过,f l a s h 数据发送技术需要网站支持f l a s h 上传和显示来实现请求,否则, 将无法成功攻击。 2 ) 利用j a v a s c r i p t 动态生成 标签来发送数据 这种发送方式运用了相当多的a j a x 特性和j a v a s c r i p t 技巧。其原理在于o n - d e m a n d 1 0 2a j a x 站点及其安全问题简介 j a v a s c r i p t 具体步骤是: a 、j a v a s c r i p t 根据a j a x 引擎的触发,动态在页面上添加新的 标签或者 标签。 b 、在 或者 标签的s r c 属性中添加第三方的网址。 c 、添加标签完毕后,网页触发s r c 属性向第三方网址发送请求。 由于 和 标签不遵循同域名请求的显示,因此其s r c 属性可以指向任意的 域名,从而达到了向第三方发送信息的目的。 这种方法的优点在于实现方便,发送隐蔽,并与a j a x 框架结合紧密。只要攻击者 能顺利将生成s c r i p t 标签的j a v a s c r i p t 代码嵌入网页并设定被调用条件就能完成攻击。 j a v a s c r i p t 代码如图2 5 所示。 3 ) 利用j a v a s c r i p t 动态生成隐藏的f o r m 对象来发送数据 动态生成 标签的方法虽然快捷,隐蔽且容易实现。但是有一个致命的缺点是 只能向第三方网站发送g e t 请求,而不能发送p o s t 请求。对普通w e b 页面来说,其 最常用的p o s t 方式是在页面中建立一个f o r m 标签对象,用s u b m i t 方式进行请求。 而a j a x 蠕虫则可以模仿正常的页面,用j a v a s c r i p t 的c r e a t e e l e m e n t 函数在页面中动 态生成个隐藏的f o r m 标签,并调用d o c u m e n t f o r m o s u b m i t 的方法触发这个隐藏f o r m 的p o s t 请求【1 2 】。 2 2 5 恶意的j a v a s c r i p t 问题 j a v a s c r i p t 在设计之初就考虑到其会在客户端的浏览器中运行,如果其功能过强,期 限过大就可能对客户端的系统造成破坏,所以j a v a s c r i p t 代码只能在当前

温馨提示

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

评论

0/150

提交评论