1. 程式人生 > >什麼是目錄遍歷攻擊及如何防護

什麼是目錄遍歷攻擊及如何防護

前幾日研究某Web專案原始碼,使用的是ThinkPHP框架,根目錄下有個www目錄,存放專案模組的入口檔案。頓時茫然,本人一般直接把入口檔案放在web根目錄,而這裡卻是www目錄,不知www目錄是何作用,遂問老大,老大回:你查查什麼是目錄遍歷攻擊。所以才懂得www目錄之所以存在的目的。。。
layer1

描述

攻擊人員通過目錄便利攻擊可以獲取系統檔案及伺服器的配置檔案等等。一般來說,他們利用伺服器API、檔案標準許可權進行攻擊。嚴格來說,目錄遍歷攻擊並不是一種web漏洞,而是網站設計人員的設計“漏洞”。如果web設計者設計的web內容沒有恰當的訪問控制,允許http遍歷,攻擊者就可以訪問受限的目錄,並可以在web根目錄以外執行命令。

攻擊方法

攻擊者通過訪問根目錄,傳送一系列”../”字元來遍歷高層目錄,並且可以執行系統命令,甚至使系統崩潰。

發現漏洞

1、可以利用web漏洞掃描器掃描一下web應用,不僅可以找出漏洞,還會提供解決辦法,另外還可以發現是否存在sql漏洞及其他漏洞。
2、也可以檢視web log,如果發現有未授權使用者訪問越級目錄,說明有目錄便利漏洞。

如何防範

防範目錄遍歷攻擊漏洞,最有效的辦法就是許可權控制,謹慎處理傳向檔案系統API的引數。本人認為最好的防範方法就是組合使用下面兩條:
1、淨化資料:對使用者傳過來的檔名引數進行硬編碼或統一編碼,對檔案型別進行白名單控制,對包含惡意字元或者空字元的引數進行拒絕。
2、web應用程式可以使用chrooted環境包含被訪問的web目錄,或者使用絕對路徑+引數來訪問檔案目錄,時使其即使越權也在訪問目錄之內。www目錄就是一個chroot應用。

chroot

chroot是在unix系統的一個操作,針對正在運作的軟體程序和它的子程序,改變它外顯的根目錄。一個執行在這個環境下,經由chroot設定根目錄的程式,它不能夠對這個指定根目錄之外的檔案進行訪問動作,不能讀取,也不能更改它的內容。chroot這一特殊表達可能指chroot(2)系統呼叫或chroot(8)前端程式。
由chroot創造出的那個根目錄,叫做“chroot監獄”(chroot jail,或chroot prison)。more chroot使用

參考

歡迎轉載、分享,但是請保留原文連結。
本文連結:http://www.sundabao.com/%E4%BB%80%E4%B9%88%E6%98%AF%E7%9B%AE%E5%BD%95%E9%81%8D%E5%8E%86%E6%94%BB%E5%87%BB%E5%8F%8A%E5%A6%82%E4%BD%95%E9%98%B2%E6%8A%A4/