Linux系統下的實驗,配置了elgg服務javascript
這一步是在Profile中嵌入javascript代碼,使得瀏覽該profile的用戶都會引起彈窗。太簡單了不細說html
這一步和上一步的區別就是彈窗的內容不同了而已,也不解釋,看圖。java
這一步是將上一步中得到的cookie使用GET請求發送到Attacker中,Attacker只須要一直在抓包就能夠了,這裏我使用了wireshark做爲抓包工具。apache
這裏必須假設Attacker已經知道了victim的elgg_ts和elgg_token參數,這兩個參數從WebBrower的Console中獲取,分別是elgg.security.token.__elgg_ts;和elgg.security.token.__elgg_token;
別忘了配置Attacker的Web Server是指向Victim機器上面的Web Server。服務器
Java代碼模擬發包過程以下:cookie
結果可以使得Boby被迫添加Alice爲好友session
這一步須要在profile中注入完整的攻擊,使得訪問該profile的都是受害者。
主要目的就是調用js文件,主要過程以下:
在Attacker機器上多配置一臺Web服務器用於保存.js文件dom
在根據ip地址配置好hosts文件,注意須要修改成新配置的domainxss
可是因爲默認設置不能直接訪問服務器的文件,因此須要配置apache容許這一操做,同時提升/var/www/路徑下新Web服務器的文件權限,使得其能夠被直接訪問工具
在代碼中能夠判斷一下看看是誰訪問,若是是本身訪問就不要攻擊了,只攻擊外人,避免麻煩的事情。能夠看看下面三張圖:
用戶訪問Alice的Profile:
用戶的Profile被莫名修改:
用戶的好友列表莫名添加了新好友:
這一步須要在上一步的基礎上添加傳播性,所以修改profile的時候再也不修改成任意內容,一樣修改成帶XSS注入攻擊的內容就好。具體修改成這樣:
獲得的結果爲
當Charlie去訪問已經被感染的Boby頁面的時候,也被感染了
根據文檔修改這個配置,主要是對profile中的各字段進行了非法驗證,只經過合法的字段從而防止了XSS的攻擊問題。
第一步,啓用HTMLawed模塊
用管理員帳號登錄以後,啓用裏面的HTMLawed模塊就好
獲得的結果是這樣子的
這種方式是把用戶輸入的script標籤轉換爲a標籤,避免了被動觸發js代碼形成的感染
第二步是啓用htmlspecialchars()字符判斷轉義
根據文檔說明修改相應的代碼,去掉註釋就行了
修改後的效果爲
主要功能爲,將方括號轉義爲html的字符渲染形式,從而避免了被看成一個腳本去運行