天天看點

首次成功實施 XSS 攻擊,盜取目标網站大量 VIP 帳号

前言

之前做網站時有做代碼防禦 xss(cross site script) 攻擊,但是卻隻處于了解的階段,并不知道其中具體的原理,更别說使用了。最近有朋友要求我幫助他 hack 一個網站,達到一定的目的。思考來思考去,最後想了一套方案,并最終成功實施。現在回想起來,整套解決方案中,其實主要就是 xss。

(   本文不會公布目标網站位址。主要是為了交流技術,以幫助大家在 web 開發中更好地防禦 xss。

看文章标題說得比較牛,其實我也不會去修改他們的密碼,太壞的事咱可不能幹,哈哈。 :)   )

xss 簡述

攻擊流程

假設我想盜取 www.target.com 中的其他使用者,并使用他們的身份來登入該站點。那麼我同時還需要一個自己的伺服器,假設為 www.hackhost.com。然後,使用我自己的帳号登入到 target.com,然後在我的個人頁面中送出腳本(例如在個人檔案中加入一定的腳本。關于如何送出,後面再讨論。)。該腳本内容比較簡單,如下:

這樣,每個浏覽我的個人頁面的其他使用者,都會自動下載下傳 www.hackhost.com/clienthacker.js 這個 javascript 檔案執行。這個檔案是部署到我的 hackhost.com 伺服器上的,我可以在其中加入任意的腳本。這樣,目前登入的使用者的整個用戶端都處于這個腳本的控制當中。

而服務端接收到這個請求後,可以把 cookie、ip、時間等記錄下來。這樣就可以友善我慢慢地分析每個請求。

所需工具

這次 hack 涉及到的工具不多,主要是用 fiddler 分析和僞造各種 http 請求。

結果截圖

首次成功實施 XSS 攻擊,盜取目标網站大量 VIP 帳号

好多 vip 帳号啊。 :)

難點

别處,用 js 并不能擷取到完整的 cookie 值,這是因為如果 cookie 中帶有 httponly 标記的話,js 是不能讀取的。例如,asp.net 網站的 sessionid 對應的用戶端 cookie 就是标記了 httponly的。否則,我們就可以通過 js 擷取到最近可用的 session,并僞造該 session 進行(session 劫持)。

小結

總體上來說,這次的攻擊是比較簡單的。而且這次的目标網站對于自身的安全性确實沒有做什麼工作,很輕易我就把 js 注入了。另外,他們還把使用者辨別儲存在 cookie 中,雖然辨別是加密後的,但是這不影響我的使用場景。

之前做過秒殺,但是算不上 hack,這是第一次成功 hack,是以寫這篇文章簡單紀念一下。 :)

(一月最少一篇總結,總算是在本月最後關頭送出上來了,差一點斷,哈。)

繼續閱讀