網安靶場環境_DVWA-讀取檔案報錯File not found! Cookie中有兩個security鍵

2023-12-10 18:01:31

 

1 問題復現

(1)登入DVMA後,設定DVWA Security為Low。

 

(2)進入File Inclusion,存取dvwa/vulnerabilities/fi目錄下的的test.txt檔案(自己建立的測試檔案)。

 

(3)報錯ERROR: File not found! 找不到檔案。

 

2 抓包分析

(1)使用BurpSuit抓包。

存取test.txt檔案的請求中,Cookie有兩個security鍵;導致設定DVWA Security為Low沒有成功。

 

(2)在瀏覽器中檢視「設定DVWA Security為Low」時,伺服器端Set Cookie情況。

在Set SessionId時指定了使用路徑;而Set Security是沒有指定路徑。

 

(3)Cookie的屬性。

屬性

描述

name

Cookie的名稱,Cookie一旦建立,名稱便不可更改

value

Cookie的值。如果值為Unicode字元,需要為字元編碼。如果值為二進位制資料,則需要使用BASE64編碼

maxAge

Cookie失效的時間,單位秒。如果為正數,則該Cookie在maxAge秒之後失效。如果為負數,該Cookie為臨時Cookie,關閉瀏覽器即失效,瀏覽器也不會以任何形式儲存該Cookie。如果為0,表示刪除該Cookie。預設為-1。

secure

該Cookie是否僅被使用安全協定傳輸。安全協定。安全協定有HTTPS,SSL等,在網路上傳輸資料之前先將資料加密。預設為false。

path

Cookie的使用路徑。如果設定為「/sessionWeb/」,則只有contextPath為「/sessionWeb」的程式可以存取該Cookie。如果設定為「/」,則本域名下contextPath都可以存取該Cookie。注意最後一個字元必須為「/」。

domain

可以存取該Cookie的域名。如果設定為「.google.com」,則所有以「google.com」結尾的域名都可以存取該Cookie。注意第一個字元必須為「.」。

comment

該Cookie的用處說明,瀏覽器顯示Cookie資訊的時候顯示該說明。

version

Cookie使用的版本號。0表示遵循Netscape的Cookie規範,1表示遵循W3C的RFC 2109規範

 

3 修復伺服器端程式碼

(1)檢視伺服器端setcookie的php程式碼。

發現沒有給security指定使用路徑。

 

(2)修改setcookie()中security的路徑為「/」。

 

(3)PHP setcookie()函數。

語法:setcookie(name,value,expire,path,domain,secure)

引數

描述

name

必需。規定 cookie 的名稱。

value

必需。規定 cookie 的值。

expire

可選。規定 cookie 的有效期。

path

可選。規定 cookie 的伺服器路徑。

domain

可選。規定 cookie 的域名。

secure

可選。規定是否通過安全的 HTTPS 連線來傳輸 cookie。

 

4 驗證結果

(1)清除瀏覽器Cookie。

 

(2)重新登入DVMA,再次設定DVWA Security為Low。

Set SessionId的路徑和Set Security的路徑一致。

 

(3)進入File Inclusion,存取dvwa/vulnerabilities/fi目錄下的的test.txt檔案。

成功讀取到檔案內容,並且請求Cookie中只有一個security鍵。