2012-02-20 89 views
1

試圖找出用戶'_www'在我的OS X服務器上有什麼權限。我需要確定它是否具有root訪問權限,是否可以訪問任何系統文件,或者是否可以訪問Writes的標準頂級「網站」目錄。_www有什麼權限?

+1

通常只有root擁有'root'。 – KingCrunch 2012-02-20 18:55:12

回答

3

好了,你可以看看/etc/group看到_www所屬團體:

$ grep _www /etc/group 
_www:*:70:_devicemgr,_teamsserver 

在一個正確配置的服務器,運行的web服務器作爲專用用戶的整點是限制用戶的權限別處。但是,訪問文件系統的Web應用程序代碼能夠在服務器的DocumentRoot之外讀取。

因此,如果應用程序代碼在讀取文件系統時無法防止這種情況發生,那麼任何不屬於_www的文件在理論上都可以被_www讀取,但它對文件的父目錄具有讀取權限和執行權限。同樣,如果應用程序代碼提供對它們的訪問權限,那麼文件系統上其他可寫的文件可以由Web服務器修改。

這些問題是可利用的當應用程序使用用戶輸入以產生用於讀取或寫入的文件的路徑,但無法防止像輸入:../../../../../../../../../,當可能再加上一個NULL byte injection可能產生的文件名中應用程序等

/www/application/phptemplates/../../../../../../../../../../etc/passwd 

當然,在現代系統中,/etc/passwd實際上並不存儲密碼,但它可能向潛在的攻擊者顯示本地用戶和其他有價值的信息。