目錄
一、定義
二、與XSS的區別
三、攻擊要點
四、實戰
一、定義
CSRF (Cross-site request forgery,跨站請求偽造),攻擊者利用服務器對用戶的信任,從而欺騙受害者去服務器上執行受害者不知情的請求。在CSRF的攻擊場景中,攻擊者會偽造一個請求(一般為鏈接),然后欺騙用戶點擊,用戶一但點擊,整個攻擊也就完成了,所以CSRF攻擊也被稱為“one click”攻擊。
二、與XSS的區別
(1)XSS是利用用戶對服務端的信任,CSRF是利用服務端對用戶的信任
XSS的攻擊,主要是讓腳本在用戶瀏覽器上執行,服務器端僅僅只是腳本的載體,本身服務器端不會受到攻擊利用
CSRF攻擊,攻擊者會偽造一個用戶發送給服務器的正常鏈接,其核心主要是和已登錄(已認證)的用戶去發請求。CSRF不需要知道用戶的Cookie,CSRF自己并不會發請求給服務器,一切交給用戶
(2)XSS是將惡意代碼植入被攻擊的服務器,利用用戶對服務器的信任完成攻擊,而CSRF是攻擊者預先在自己的服務器頁面植入惡意代碼,誘使受害者訪問,在受害者不知情的情況下執行了惡意代碼,而攻擊服務器是獨立的域名或IP地址。
三、攻擊要點
(1)服務器沒有對操作來源進行判斷,如IP、Referer等
(2)受害者處于登錄狀態,但是攻擊者無法拿到Cookie
(3)攻擊者需要找到一條可以修改或獲取敏感信息的請求
四、實戰
實驗環境:一個windows(受害者),一個kali(攻擊者)
兩個都開啟了apache服務,且瀏覽器頁面可以正常訪問
實驗網站使用dvwa靶場的CSRF模塊,等級為low
話不多說,實驗開始
登錄的用戶名(admin)密碼(password)都為默認
登錄后來到CSRF模塊,可以看到讓直接輸入新密碼
開啟burp抓包,偽造一個html頁面
抓到的包可以看到輸入的新密碼
點擊右鍵,構造一個CSRF poc
根據構造好的html放入攻擊機的網頁目錄下
kali的apache默認目錄在/var/www/html
在此目錄下創建一個名為csrf.html的文件,并粘貼文本
然后去誘導受害者在dvwa登錄的情況下點擊該鏈接
攻擊者服務器的鏈接(http://192.168.43.148/csrf.html)
這里的頁面可以做優化,什么請為我們戰隊投票,什么點擊觀看視頻,誘導用戶點擊按鈕即可
當用戶點擊按鈕之后就跳轉到了這個頁面
顯示著Password Changed,密碼修改成功
注銷后再用原密碼嘗試登錄一下
登錄失敗,使用攻擊者修改的密碼即可登錄
至此攻擊完成,有錯誤的地方請指正,感謝查看!