天天看點

PiKachu靶場之目錄周遊漏洞概述一、../../ 目錄周遊

概述

在web功能設計中,很多時候我們會要将需要通路的檔案定義成變量,進而讓前端的功能便的更加靈活。 當使用者發起一個前端的請求時,便會将請求的這個檔案的值(比如檔案名稱)傳遞到背景,背景再執行其對應的檔案。 在這個過程中,如果背景沒有對前端傳進來的值進行嚴格的安全考慮,則攻擊者可能會通過“../”這樣的手段讓背景打開或者執行一些其他的檔案。 進而導緻背景伺服器上其他目錄的檔案結果被周遊出來,形成目錄周遊漏洞。

看到這裡,你可能會覺得目錄周遊漏洞和不安全的檔案下載下傳,甚至檔案包含漏洞有差不多的意思,是的,目錄周遊漏洞形成的最主要的原因跟這兩者一樣,都是在功能設計中将要操作的檔案使用變量的 方式傳遞給了背景,而又沒有進行嚴格的安全考慮而造成的,隻是出現的位置所展現的現象不一樣,是以,這裡還是單獨拿出來定義一下。

需要區分一下的是,如果你通過不帶參數的url(比如:http://xxxx/doc)列出了doc檔案夾裡面所有的檔案,這種情況,我們成為敏感資訊洩露。 而并不歸為目錄周遊漏洞。(關于敏感資訊洩露你你可以在"i can see you ABC"中了解更多)

你可以通過“../../”對應的測試欄目,來進一步的了解該漏洞。

原理與防範可參考之前的blog:  漏洞之目錄周遊漏洞

一、../../ 目錄周遊

首先,   點選兩個連結,  分别指向兩個php檔案,:

PiKachu靶場之目錄周遊漏洞概述一、../../ 目錄周遊
PiKachu靶場之目錄周遊漏洞概述一、../../ 目錄周遊

根據title參數(可控參數)執行php來顯示頁面的,  若程式在實作上沒有充分過濾使用者輸入的../之類的目錄跳轉符,導緻惡意使用者可以通過送出目錄跳轉來周遊伺服器上的任意檔案。

分析

若把dir_list.php檔案去掉,  直接列出了dir檔案夾下的所有檔案:

PiKachu靶場之目錄周遊漏洞概述一、../../ 目錄周遊

事實上這并不算是目錄周遊,  上述是由于開啟了目錄浏覽造成的

比如,  在apace+phpStudy下開啟d目錄浏覽,  需要在phpStudy\Apache\conf下面的vhosts.conf檔案中修改:

<Directory "D:\wwwroot\d">

      Options Indexes FollowSymLinks

  </Directory>
           

這樣就可以對目錄d進行目錄浏覽了:

PiKachu靶場之目錄周遊漏洞概述一、../../ 目錄周遊

漏洞利用

根據目錄周遊的原理,  攻擊者主要通過../來傳回上一級目錄,  進而導緻所有目錄的暴露

這裡先嘗試一下對title變量加入上一級目錄../ (類似檔案包含漏洞..)

http://localhost/pikachu-master/vul/dir/dir_list.php?title=../../../README.md
           
PiKachu靶場之目錄周遊漏洞概述一、../../ 目錄周遊

其實也可以算做是檔案包含漏洞,  從源碼中可以看出

PiKachu靶場之目錄周遊漏洞概述一、../../ 目錄周遊

但是如果php開啟了目錄浏覽,  同樣也可以采取一下方式進行目錄周遊:

PiKachu靶場之目錄周遊漏洞概述一、../../ 目錄周遊

想繼續到系統根目錄是不可能的,  應該目錄浏覽的開啟僅限于網站根目錄下:

PiKachu靶場之目錄周遊漏洞概述一、../../ 目錄周遊

如果想要進行目錄周遊的話,  就先利用資訊探針來判斷作業系統,  再根據經驗來包含出系統關鍵檔案即可:

PiKachu靶場之目錄周遊漏洞概述一、../../ 目錄周遊