热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

从新浪微博被攻击事件看SNS网站的安全问题

相对于用户隐私泄露,SNS网络的XSS蠕虫的危害就要更大了。蠕虫是指可以通过网络进行传播和感染的恶性病毒,其最大的特点就是可以自己借助网络环境进行自我复制和感染。

新浪微博遭受XSS跨站脚本攻击实例分析

相对于用户隐私泄露,SNS网络的XSS蠕虫的危害就要更大了。蠕虫是指可以通过网络进行传播和感染的恶性病毒,其最大的特点就是可以自己借助网络环境进行自我复制和感染。自从Ajax技术出现后,Web也变得越发人性化,网页内容动态更新的效果使得Ajax在大型交互网站上广泛应用,然而在Ajax快速流行的同时,也带来了不安全的隐患。如果说过去的XSS漏洞只是脚本漏洞利用的一个简单技巧的话,那么现在,结合了Ajax技术的XSS漏洞就可以实现对Web应用程序中存在的XSS漏洞进行自动化利用和传播的XSS蠕虫病毒,它可以将用户数据信息发送给Web应用程序,然后再将自身代码传递进入Web应用程序,当其他用户访问Web应用程序时,XSS蠕虫自身将又开始进行新一轮的传播与感染。XSS蠕虫的感染速度是可以实现随着Web应用程序的用户访问量几何级数递增的,传播和感染的速度及攻击效果非常可怕。

XSS漏洞攻击过程分析

那么XSS漏洞又是怎么实现将代码植入到Web应用程序中的呢?这里我们先了解一下XSS攻击的定义和分类。跨站脚本攻击(Cross Site Scripting)是指攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用户造成影响的HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。

XSS通常可以分为两大类:一类是存储型XSS,主要出现在让用户输入数据,供其他浏览此页的用户进行查看的地方,包括留言、评论、博客日志和各类表单等。应用程序从数据库中查询数据,在页面中显示出来,攻击者在相关页面输入恶意的脚本数据后,用户浏览此类页面时就可能受到攻击。这个流程简单可以描述为——恶意用户的Html输入web程序?进入数据库?web程序?用户浏览器。另一类是反射型XSS,主要是将脚本加入URL地址的程序参数里,参数进入程序后在页面直接输出脚本内容,用户点击类似的恶意链接就可能受到攻击。

由定义和分类我们可以了解到,如果Web应用程序对用户输入的数据信息没有做严格过滤的话,就会导致被写入的恶意代码被解析并执行,那么结合Ajax的异步提交功能,自然也就实现了在植入恶意代码的同时,又可以将恶意代码进行对外发送的功能,即实现了代码的感染,同时也实现了代码的传播,也就形成了XSS蠕虫。出现最早也是最著名的XSS蠕虫病毒应该属于MySpace的Samy XSS蠕虫了。

国内外社交网站遭受XSS攻击实例回放

MySpace支持交友功能,好友信息会显示在个人空间的好友列表中,但是,如果想通过MySpace添加其他人为自己的好友,需要得到对方的验证通过才可以。2005年10月,一个名叫Samy的人在网上发布了一片文章,在文章中他说找到了一种方法可以借助MySpace网站自身存在的漏洞实现自动化添加自己到别人的空间中,并且经过测试,在3个小时内添加了2429个好友,同时收到了6373个来自MySpace上其他人添加自己为好友的请求,由此而导致了大量的恶意数据和垃圾信息在MySpace上传播,对网站和用户都造成了巨大损害。

最近几年,XSS蠕虫在大型SNS网络上爆发也很常见,自2005年MySpace Samy XSS蠕虫爆发以后,2009年,著名的社交网络及微博网站Twitter在这一年的时间里连续6次爆发多规模传播的XSS蠕虫攻击病毒。在我国国内最近几年,大型SNS网站及其他一些博客网站也有XSS蠕虫爆发的记录,如人人网的多次XSS蠕虫攻击事件、搜狐博客网站的XSS蠕虫攻击事件、百度空间的XSS蠕虫攻击事件及最近刚刚爆发的新浪微博XSS蠕虫大规模攻击事件等。在2007年10月,人人网爆发XSS蠕虫攻击事件中,攻击者没有植入任何恶意代码,所做的事情仅仅是测试一下蠕虫的传播效果,其中流量效果图如图6所示。

图6:人人网XSS蠕虫爆发期恶意代码所在网站流量监测状态图

从图6中我们可以看到恶意攻击者用于测试的网站流量在几天时间里大增,这些天应该是蠕虫感染的时间。日访问人数从0猛增到每天500人/百万人。也就是说,攻击者测试的地址每天会被访问5亿次,考虑到传播过程中会存在一个人访问多次的现象,所以粗略估计至少有几百万人受到该XSS蠕虫的攻击。值得庆幸的是,本次XSS蠕虫攻击事件攻击者仅仅是为了测试蠕虫的传播效果,如果将恶意挂马行为或者是钓鱼攻击行为与XSS蠕虫攻击相结合的话,由此造成的损失将是巨大的。

新浪微博遭受XSS攻击实例分析

通过以上对SNS网站面临的主要问题的了解可以发现,一旦SNS网站存在安全漏洞,那么恶意黑客攻击者通过安全漏洞可以做的事情是相当丰富的,诸如窃取账号密码信息、传播恶意代码、盗取用户隐私等,那么真实的此类攻击事件又是如何发生和进行的呢?下面我们结合新浪微博的XSS蠕虫攻击事件,对黑客恶意利用漏洞至XSS蠕虫大范围扩散的过程进行详细分析和描述,并对该XSS蠕虫的恶意脚本文件进行一下简要的分析。

首先,黑客通过对新浪微博的分析测试发现新浪名人堂部分由于代码过滤不严,导致XSS漏洞的存在,并可以通过构造脚本的方式植入恶意代码。通过分析发现,在新浪名人堂部分中,当提交http://weibo.com/pub/star/g/xyyyd">?type=update时,新浪会对该字符串进行处理,变成类似http://weibo.com/pub/star.php?g=xyyyd">?type=update,而由于应用程序没有对参数g做充足的过滤,且将参数值直接显示在页面中,相当于 weibo.com 在页面中嵌入了一个来自于 2kt.cn的JS脚本。该JS脚本是黑客可以控制的文件,使得黑客可以构造任意JS脚本嵌入到weibo.com的页面中,且通过Ajax技术完全实现异步提交数据的功能,进而黑客通过构造特定的JS代码实现了受此XSS蠕虫攻击的客户自动发微博、添加关注和发私信等操作。

然后,黑客为了使该XSS蠕虫代码可以大范围的感染传播,会通过发私信或发微博的方式诱惑用户去点击存在跨站代码的链接,尤其是针对V标认证的用户,因为此类用户拥有大量的关注者,所以如果此类用户中毒,必然可以实现蠕虫的大范围、快速的传播。

图7:大量用户中毒后发送的含毒微博信息

最后,当大量的加V认证账户和其他普通用户中毒后,这些用户就会通过发微博和发私信的方式将该XSS蠕虫向其他用户进行传播,进而导致了该XSS蠕虫的大范围、快速的传播与感染。

图8:含毒微博信息的主要内容和XSS蠕虫链接

新浪微博攻击事件发生之后,我们第一时间发现了2tk.cn网站上面的恶意脚本,文件名为t.js,链接地址为 www.2kt.cn/images/t.js,经过提取保存,脚本代码如下:

 图9:新浪微博XSS蠕虫病毒代码

通过分析发现,虽然该XSS蠕虫在传播过程中没有插入恶意的挂马代码,但是却严重影响了用户对正常数据的浏览与访问,且该XSS蠕虫会在用户不知情的情况下就执行相应的恶意操作,因此认为该脚本属于恶意脚本范畴。通过进一步详细分析发现该XSS蠕虫执行以下三个操作:

操作1:发表一篇微博信息,代码如图10所示。

图10:XSS蠕虫代码中自动发布微博功能代码

从代码中我们可以看到,执行的第一个操作即是在受到XSS蠕虫攻击的用户自己的页面上发布一条微博,微博的题目为随机题目,且这些题目均为目前网络环境中比较热门或有争议的题目,如“郭美美事件的一些未注意到的细节”、“建党大业中穿帮的地方”、“让女人心动的100句诗歌”等。如此热门的题目也必然会引来更多的XSS蠕虫攻击受害者。

操作2:就是关注恶意攻击者的微博账号,代码如图11所示。

图11:XSS蠕虫代码中自动关注恶意攻击者微博账号的功能代码

从代码中我们可以看到,第二个操作就是关注加uid为2201270010的账户,该账户就为此次攻击事件的操纵者,即名称为hellosamy的用户。

操作3:通过私信的方式发送给受攻击账户的好友,将这些带毒链接进行传播,代码如图12所示。

图12:XSS蠕虫代码中自动向好友发送含毒私信功能代码

从代码中我们可以了解到恶意攻击者除了通过发布微博信息传播恶意链接以外,还会通过私信的方式将带有恶意链接的信息发送到好友账号中,且题目仍然为上面提到的热门话题,进而实现恶意链接的快速传播和感染。

SNS网站的用户和流量是巨大的,同时也容易招致严重的安全问题和隐患。如何能够保护用户的隐私信息不被窃取,保护用户不受到恶意代码的攻击,这不仅仅是网站管理员必须关心的问题,同时也是我们广大SNS用户需要关注的问题,这些都需要管理员和用户共同去维护,保护SNS在网络环境中的这一片净土。



推荐阅读
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • OAuth2.0指南
    引言OAuth2.0是一种应用之间彼此访问数据的开源授权协议。比如,一个游戏应用可以访问Facebook的用户数据,或者一个基于地理的应用可以访问Foursquare的用户数据等。 ... [详细]
  • 2月4日每日安全热点节日期间某企远程办公遭XRed攻击 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文介绍了DataTables插件的官方网站以及其基本特点和使用方法,包括分页处理、数据过滤、数据排序、数据类型检测、列宽度自动适应、CSS定制样式、隐藏列等功能。同时还介绍了其易用性、可扩展性和灵活性,以及国际化和动态创建表格的功能。此外,还提供了参数初始化和延迟加载的示例代码。 ... [详细]
  • 工作经验谈之-让百度地图API调用数据库内容 及详解
    这段时间,所在项目中要用到的一个模块,就是让数据库中的内容在百度地图上展现出来,如经纬度。主要实现以下几点功能:1.读取数据库中的经纬度值在百度上标注出来。2.点击标注弹出对应信息。3 ... [详细]
  • 前言:关于跨域CORS1.没有跨域时,ajax默认是带cookie的2.跨域时,两种解决方案:1)服务器端在filter中配置详情:http:blog.csdn.netwzl002 ... [详细]
  • 关于extjs开发实战pdf的信息
    本文目录一览:1、extjs实用开发指南2、本 ... [详细]
  • 原文:http:blog.linjunhalida.comblogpjaxgithub:https:github.comdefunktjquery-pjax ... [详细]
  • 以数据驱动品牌,为出海强势护航
                    原创
    原标题:以数 ... [详细]
author-avatar
JasonXie
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有