1、路徑遍歷漏洞是什么?
①為了識別位於受限的父目錄下的文件或目錄,軟件使用外部輸入來構建路徑。如果軟件不能正確地過濾路徑中的特殊元素,能夠導致訪問受限目錄之外的位置。
②正常應用中的許多文件操作都發生在受限目錄下。(首先目錄代表)
③攻擊者通過使用特殊元素(例如,“..”、“/”)可到達受限目錄之外的位置,從而獲取系統中其他位置的文件或目錄。例如 ../ 作為一種常見的特殊字符串,在大多數操作系統中被解釋為當前位置的父目錄,這種使用特殊元素 ../ 的路徑遍歷漏洞又被稱為相對路徑遍歷。路徑遍歷還包括使用絕對路徑名(如/usr/local/bin
),用於訪問非預期的文件,這稱為絕對路徑遍歷。
2、路徑遍歷漏洞的構成條件有哪些?
①數據從不可靠來源(包括但不局限於不可靠用戶的輸入信息或是不可靠用戶可能更改的文件)進入應用程序。
②該數據被用於構造新的文件目錄,進一步進行訪問或修改。
3、路徑遍歷漏洞會造成哪些后果?
①攻擊者可能創建或覆蓋關鍵文件。例如程序或庫,並用於執行。
②攻擊者繞過安全機制獲取重要數據。例如,在可訪問的文件路徑末尾附加 ../ 等路徑並重定向到本無權限的重要數據,這可能允許攻擊者繞過身份驗證。
③攻擊者可能能夠覆蓋,刪除或損壞關鍵文件。例如程序,庫或重要數據。這可能會阻止軟件完全工作,並且在諸如認證之類的保護機制的情況下,它有可能鎖定軟件的每個用戶。
4、路徑遍歷漏洞的一些防范和修補建議
從實現角度,進行輸入驗證:對輸入的信息進行驗證。使用嚴格符合規范的可接受輸入的白名單。拒絕任何不嚴格符合規范的輸入,或將其轉換為具有相應規格的輸入。