從 twitter 受到 6 波攻擊討論 XSS 問題

edited 十月 2013 in Javascript
我沒有在用 twitter ,不過看樣子還蠻多人喜歡的 ;)

有興趣的朋友可以在阿碼外傳關注整件事情的發展:
http://armorize-cht.blogspot.com/2009/04/xsstwitter-mikeyy.html

簡單的概念是,只要有任何一個用來顯示的欄位或資訊允許執行 javascript ,攻擊者就可以假冒其他使用者的名義做任何事情,更甚者是盜取使用者的帳號、密碼等個人資訊做更多延伸攻擊。在 twitter 受到的攻擊中,攻擊者固定的流程像這樣:
1. 找到一個可以放 javascript 程式碼的位置
2. 透過 javascript 取得遠端的 javascript 檔案,只要這步能夠做到,可以做的事情就很多了
3. 在使用者瀏覽器執行時,試著透過 cookie 取得使用者的帳號資訊,傳到遠端主機做記錄
4. 用使用者的身份在 1. 的位置放入 2. 的程式碼
5. 用使用者身份發表各種訊息

透過上面這樣簡單的步驟,再利用 twitter 一傳十的特性,很短的時間裡就可以蒐集大量的個人資料,也將想要宣傳的訊息大量發出。

這裏面比較特別的地方是,最新的攻擊利用了 IE8 以前 IE 瀏覽器可以在 CSS 中加入 expression() 語法執行 javascript 的特性,讓前面幾次 twitter 的修補破功(因為只有過濾 <script... 之類的標籤),這一點以前倒真的不太會注意到 ^^||

javascript 果真很邪惡 ...

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=4131

評論

  • edited 四月 2009
    其實我覺得javascript雖然邪惡.但不是引發問題的根源
    小餅乾才是萬惡的淵藪阿...
    縱使我們可以對cookie的資料進行加密.但仍逃不過使用者身份被盜用的命運...所以.大家一起捨棄cookie與自動登入吧!!(眾毆
    對不起..我是來亂的(笑
  • edited 四月 2009
    可是少了 cookie/session ,網站好像會回到蠻荒時代 ;)

    要防範這種問題,得試著辨識資料是來自使用者自行送出,或是受到程式控制而送出,也許可以在取得資料同時多一層回應向使用者確認,只是這樣子不知道會不會反而造成網站缺乏親和力的誤解。

    cookie 也許只應該儲存一個權杖 (token) 資料,能夠辨識使用者即可,其他敏感的資料還是放在遠端資料庫。

    另外,有許多朋友喜歡在自己網站上放滿廣告,廣告的來源如果無法信任,其實裏面很容易安插各種惡意程式,像是有些廣告商已經成功透過類似手法來辨識使用者去過的網站,甚至進一步取得性別、年齡、職業等各種敏感資訊進行分析,而這種分析還只是比較善良的作法,如果廣告跟登入表單同時存在,可以輕易的取得帳號、密碼等資訊。

    簡單的說,有第3方 javascript 應用存在時,網站上任何表單送出的資料都可以被攔截、加料。
  • edited 四月 2009
    cookie的大問題就是
    不管你是對它加密或是不存放敏感資料或僅僅是個連線識別
    只要你有本事弄出該使用者的cookie
    你就可以冒用該使用者的身份
    進一步取得敏感資料.更甚者連sessionID都偷偷A走
    另外就是.在AJAX橫行的現在
    透過掛入邪惡的第三方javascript代碼
    在背景送資料到第三方的資料庫.真的沒難度...
    致命的是.現今硬體運算與網路的快速
    導致這些過程使用者將不會有任何感覺
    我們或許不能沒有session
    但是真的一定需要cookie嗎?
  • edited 四月 2009
    session 很多時候是依賴 cookie 的,如果試著將 cookie 功能關掉, session 應該很容易遺失(猜測,並沒有真的把 session 的程式碼挖出來看)。
  • edited 五月 2009
    再來一波
    http://www.zdnet.com.tw/news/web/0,2000085679,20137988,00.htm

    雖然看起來跟 XSS 無關,不過...他們的開發人員應該會被釘在牆上吧
  • edited 五月 2009
    嗯..涉及到有管理者權限的帳號.這種不安全的密碼也敢用...
    被釘在牆上的應該是管理者吧...
    聽起來跟開發人員無關哩(笑
Sign In or Register to comment.