上一章我談到了 XSS 攻擊的幾種分類以及造成的攻擊的原理,並舉了一些淺顯的例子,接下來,我就闡述什麼叫作 XSS Payload
以及從攻擊者的角度來初探 XSS 攻擊的威力。瀏覽器
在黑客 XSS 攻擊成功以後,攻擊者可以對用戶當前瀏覽的頁面植入各類惡意腳本,經過惡意腳原本控制瀏覽器,這些腳本實質上就是 JavaScript
腳本(或者是其餘瀏覽器能夠運行的腳本),這種惡意植入且具備完成各類具體功能的惡意腳本就被稱爲 XSS Payload
。服務器
一個最多見的 XSS Payload
,就是經過瀏覽器讀取 Cookie 對象,進而發起 Cookie 劫持
攻擊。xss
通常一個網站爲了防止用戶無心間關閉頁面,從新打開須要從新輸入帳號密碼繁雜的狀況下,通常都會把登陸信息(登陸憑證)加密存儲在 CooKie 中,而且設置一個超時時間,在此時間段內,用戶利用本身帳號信息隨意進出該網站。若是該網站遭到 XSS Payload
,黑客盜取了該用戶的 Cookie 信息,每每意味着該用戶的登陸憑證丟失了,換句話說,攻擊者不須要知道該用戶的帳號密碼,直接利用盜取的 Cookie 模擬憑證,直接登陸到該用戶的帳戶。網站
以下所示,攻擊者先在一個社區發表一篇文章:加密
你有意無心點了一下 點我得大獎
這個時候,XSS Payload
就生效了:url
該XSS Payload
會請求一個 img 圖片,圖片請求地址即爲黑客的服務器地址, url 參數帶上 Cookie ,咱們在後臺服務器接收到了這個請求:code
這個時候,黑客就能夠獲取到此 Cookie,而後模擬 CooKie 登錄。對象
固然傳輸的內容能夠是任何內容,只要能獲取到的,全均可以傳輸給後臺服務器。blog
如何利用竊取的 Cookie 登錄目標用戶的帳戶呢?這和利用自定義Cookie訪問網站
的過程是同樣的,參考以下:圖片
當沒有登錄的時候,Cookie 內容是空的:
當咱們手動添加 Cookie 後,登錄的內容以下:
此時,咱們就已經登錄上了該用戶的帳戶。
因此,經過 XSS 攻擊,能夠完成 Cookie 劫持
攻擊,直接登錄進用戶的帳戶。
其實都不須要帶上參數,黑客就能獲取到全部數據,這是由於當前 Web 中,Cookie 通常是用戶憑證,瀏覽器發起的全部請求都會自動帶上 Cookie 。
那麼該如何預防 Cookie 劫持
呢?
Cookie 的 HttpOnly
標識能夠有效防止 Cookie 劫持
,咱們會在稍後章節具體介紹。