網站安全(13) ——目錄穿越漏洞(Directory Traversal)

若是應用程序使用用戶可控制的數據,以危險的方式訪問位於應用服務器或其它後端文件系統的文件或目錄,就會出現路徑遍歷。後端

攻擊者能夠將路徑遍歷序列放入文件名內,向上回溯,從而訪問服務器上的任何文件,路徑遍歷序列叫「點-點-斜線」(..\)服務器

http://***/go.action?file=..\..\etc\passwd網站

 

避開過濾
第一種是過濾文件名參數中是否存在任何路徑遍歷序列(..\)
若是程序嘗試刪除(..\)來淨化用戶輸入,能夠用
….// ….\/ …./\ ….\\
進行URL編碼
點–>%2e 反斜槓–>%2f 正斜槓–>%5c
進行16爲Unicode編碼
點–>%u002e 反斜槓–>%u2215 正斜槓–>%u2216
進行雙倍URL編碼
點–>%252e 反斜槓–>%u252f 正斜槓–>%u255c
進行超長UTF-8 Unicode編碼
點–>%c0%2e %e0$40%ae %c0ae
反斜槓–>%c0af %e0%80af %c0%af
正斜槓–>%c0%5c %c0%80%5c

編碼

 數據過濾,對網站用戶提交過來的文件名進行硬編碼或者統一編碼,對文件後綴進行白名單控制,對包含了惡意的符號或者空字節進行拒絕。
 
 Web應用程序可使用chrooted環境訪問包含被訪問文件的目錄,或者使用絕對路徑+參數來控制訪問目錄,使其即便是越權或者跨越目錄也是在指定的目錄下。
相關文章
相關標籤/搜索