CSRF漏洞詳解

CSRF漏洞( Cross-site request forgery )!!!

同XSS一樣,但很多時候很多人經常把XSS與CSRF漏洞混淆,他們之間有着本質的不同,就從信任的角度來區分:

XSS:利用用戶對站點的信任

CSRF:利用站點對已經身份認證的信任

實際上CSRF漏洞主要結合社會工程發起攻擊。

漏洞利用條件:

1、被害用戶已經完成身份認證

2、新請求的提交不需要重新身份認證或確認機制

3、攻擊者必須瞭解Web APP請求的參數構造

4、誘使用戶觸發攻擊的指令(社工)

需要至少以上的條件,纔可能說存在CSRF漏洞。

 

下面詳解介紹CSRF漏洞的主要利用過程:

工具:DVWA靶機、Kali、Burp suite。

#兩種方法:Post / Get

 

 

首先:

準備好環境,將主機用於客戶端當作普通用戶,在Kali上作爲攻擊者和服務器架設,並在靶機爲low與medium狀態下進行操作。

初始登陸密碼爲:password,並調製low狀態。

 

其次:

在kali上開啓apache服務配備好服務器,同時在kali上使用同樣賬號密碼登陸上dvwa(用作burp的抓包處理),並將dwva設置爲low模式,打開burp進行截斷代理,緊接着在CSRF選項中進行更改密碼(改爲123),成功截斷後將內容drop掉,不讓其在kali上將密碼更改,接下來將我們截取到的數據取部分值配置爲(http://1.1.1.1/dwva.....)一個2.html頁面,將這個頁面放入kali中的apache服務下的/var/www/html文件,後面就需要用社會工程學向客戶端普通用戶發送含有2.html這個鏈接,等待客戶端普通用戶點擊,一旦點擊,那麼密碼將被成功修改,客戶端退出再次用password密碼登陸時將不在生效,而當使用123登陸時纔會登陸成功。

這樣一個Get方法模式的漏洞利用已經完成。

 

而對於Posr方法來說,URL是找不到修改密碼的參數,所以過去使用的方式就是查看頁面源代碼,通過對action元素一欄的參數和寫法寫出一個新的html頁面。

但是這種方法過於複雜,所以當使用burp的時候就很方便,直接通過截斷之後,drop掉當前操作,在http history中找到響應歷史對內容右鍵選擇轉換保存內容爲新的3.html並在其中修改當客戶端點擊後要修改成的密碼即可,然後重複Get方法操作,社工、等待點擊。

當客戶端點擊之後,密碼就被修改完成。

 

對於low模式下來說,沒有驗證等機制存在,所以容易完成修改,但是當low變爲medium的時候,medium就會存在本地驗證機制,看看源碼:

low模式

medium模式

 

很顯然,medium多出了一個判斷機制,也就是HTTP的REFERER中需要有127.0.0.1這個值才能進行下面的操作,所以在這裏medium模式也不是足夠安全,同樣可以進行繞過:

我們將截取的內容進行重放,然後在referer中末尾加上127.0.0.1這個值,按照Post方法再生成新的html,其效果依然能達到目的。

 

實際上由low——>medium都是存在不完善的安全模式,但到了hight模式基本上已經做得比較完善了,通過源碼就能知道:

在hight模式下更是多出了一個驗證機制,所以相對來說是安全。

 

最後:

CSRF漏洞已經再逐漸防護的越來越好,但是相信上有政策下有對策,沒有絕對安全的做法,這樣的探索始終是一件有趣的事情;如果是初學者操作操作練練手還是挺好的。

 

發佈了36 篇原創文章 · 獲贊 19 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章