程式碼安全測試第三期:路徑遍歷漏洞的防範與檢測
路徑遍歷漏洞是什麼?
為了識別位於受限的父目錄下的檔案或目錄,軟體使用外部輸入來構建路徑。由於軟體不能正確地過濾路徑中的特殊元素,能夠導致訪問受限目錄之外的位置。
許多檔案操作都發生在受限目錄下。攻擊者透過使用特殊元素(例如,“..”、“/”)可到達受限目錄之外的位置,從而獲取系統中其他位置的檔案或目錄。例如”../”作為一種常見的特殊字串,在大多數作業系統中被解釋為當前位置的父目錄,這種使用特殊元素../的路徑遍歷漏洞又被稱為 相對路徑遍歷。路徑遍歷還包括使用絕對路徑名(如"/usr/local/bin"),用於訪問非預期的檔案,這稱為 絕對路徑遍歷。
路徑遍歷漏洞的構成條件有哪些?
1、資料從不可靠來源(包括但不侷限於不可靠使用者的輸入資訊或是不可靠使用者可能更改的檔案)進入應用程式;
2、該資料被用於構造新的檔案目錄,進一步進行訪問或修改。
路徑遍歷漏洞會造成哪些後果?
關鍵詞:執行未經授權的程式碼或命令;讀取、修改檔案或目錄;崩潰,退出或重啟
1、攻擊者可能建立或覆蓋關鍵檔案。例如程式或庫,並用於執行;
2、攻擊者繞過安全機制獲取重要資料。例如,在可訪問的檔案路徑末尾附加”../”等路徑並重定向到本無許可權的重要資料,這可能允許攻擊者繞過身份驗證;
3、攻擊者可能能夠覆蓋,刪除或損壞關鍵檔案。例如程式,庫或重要資料。這可能會阻止軟體完全工作,並且在諸如認證之類的保護機制的情況下,它有可能鎖定軟體的每個使用者。
路徑遍歷漏洞的一些防範和修補建議:
從實現角度,進行輸入驗證:對輸入的資訊進行驗證。使用嚴格符合規範的可接受輸入的白名單。拒絕任何不嚴格符合規範的輸入,或將其轉換為具有相應規格的輸入。
路徑遍歷漏洞的樣例(以Java為例):
下面的程式碼嘗試檢查給定的輸入路徑,並在驗證安全之後刪除給定的檔案。在本例中,如果路徑以字串“/safe_dir/”開頭,則認為該路徑是安全的。
然而這樣驗證也是有風險的,攻擊者可以提供這樣的輸入:
由於有“/safe_dir/”的限定,程式假定path就是可信的。
當攻擊者輸入/safe_dir/../important.dat,則導致程式誤刪父目錄下的檔案important.dat。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2773114/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 滲透測試之CSRF程式碼漏洞的檢測與加固方案
- 網站滲透測試安全檢測漏洞網站
- NodeJS路徑遍歷:示例及預防NodeJS
- 檔案上傳漏洞防範-檔案型別檢測型別
- APP安全測試 該如何滲透檢測APP存在的漏洞APP
- 滲透測試常見漏洞有哪些?如何有效防範?
- 網路安全與防範
- 網站漏洞檢測 滲透測試檢測手法網站
- 程式碼安全測試第十二期:LDAP注入漏洞LDA
- 滲透測試網站安全漏洞檢測大體方法網站
- 檢測空間的路徑
- 二叉樹的遍歷演算法【和森林的遍歷】【PHP 原始碼測試】二叉樹演算法PHP原始碼
- 初級安全入門——安全漏洞的檢測與利用
- 程式碼安全測試第七期:不安全的反射漏洞缺陷反射
- 程式碼安全測試第十五期:跨站指令碼漏洞指令碼
- 程式碼安全測試第六期:XPath注入漏洞
- iOS安全攻防越獄檢測的攻與防iOS
- 軟體測試與程式碼安全詳解
- Python程式碼規範性檢測Python
- 網站安全檢測 對帝國CMS程式碼的後臺功能性安全測試網站
- 滲透測試公司 對於越權漏洞的檢測與修復
- 微信小程式之滲透測試、加固、安全檢測微信小程式
- 程式碼安全測試第五期:OS命令注入漏洞
- 網站漏洞檢測 wordpress sql注入漏洞程式碼審計與修復網站SQL
- 網站安全測試之APP滲透測試漏洞網站APP
- 自動遍歷測試 AppCrawler - 思寒APP
- Java Map遍歷方式方式及效能測試Java
- 測試流程與規範
- 程式碼安全測試第十三期:敏感資訊的明文傳輸漏洞
- 安卓 unit 測試與 instrument 測試的程式碼共享安卓
- java程式碼審計人工漏洞檢測方法Java
- 程式碼安全測試第十八期:呼叫System.exit()存在安全漏洞
- 程式碼安全測試第十期:日誌偽造漏洞
- 程式碼安全測試第十一期:記憶體洩漏漏洞記憶體
- 程式碼安全測試第十六期:使用不安全的隨機值漏洞隨機
- 程式碼安全測試第四期:可逆的單向雜湊漏洞
- 網站漏洞檢測 身份驗證碼與重要操作驗證碼安全問題網站
- 靜態程式碼檢測工具Wukong對log4J中的漏洞檢測、分析及漏洞修復