風炫安全Web安全學習第四十三節課 路徑遍歷漏洞
路徑遍歷
0x01 漏洞概述
路徑遍歷攻擊(也稱作目錄遍歷)的目標是訪問web根目錄外存盤的檔案和目錄,通過操縱使用“點-斜線(../)”序列及其變體參考檔案的變數或使用絕對檔案路徑,可以訪問存盤在檔案系統上的任意檔案和目錄,包括應用程式源代碼或配置和關鍵的系統檔案,應該注意的是,對檔案的訪問受到系統操作訪問控制的限制(例如在Microsoft Windows作業系統上鎖定或使用中的檔案),這種攻擊也被稱為“點點斜線”,“目錄遍歷”,“目錄爬升”和“回溯”,
OS特性
Unix類 OS:
根目錄: "/"
目錄分割符: "/"
Windows OS:
根目錄: "<驅動器盤符>:\"
目錄分割符: "\" or "/"
經典 Mac OS:
根目錄: "<驅動器盤符>:"
目錄分割符: ":"
0x02 漏洞特性
接下來的示例展現了應用是如何處理使用的資源的
http://example.com/getUserProfile.jsp?item=../../../../etc/
又比如這個Cookie的例子:
Cookie: USER=1826cc8f:PSTYLE=../../../../etc/passwd
在這些示例中,可以插入惡意字串作為變數引數來訪問位于Web發布目錄之外的檔案,
http://some_site.com.br/get-files?file=../../../../some dir/some file
http://some_site.com.br/../../../../some dir/some file
接下來的URL展顯了 *NIX 密碼檔案泄露
http://some_site.com.br/../../../../etc/shadow
http://some_site.com.br/get-files?file=/etc/passwd
注意:在Windows系統中,攻擊者只能訪問Web根目錄位于的磁區中,而在Linux中,他可以訪問整個磁盤,
demo
<?php
$dir_path=$_REQUEST['path'];
$page=scandir($dir_path);
var_dump($page);
?>
<?php
$template = "";
$template = $_COOKIE['TEMPLATE'];
include ( $template );
?>
Site: xx.com intext:Index OF
0x03 漏洞防御繞過
目錄限定繞過
有些Web應用程式是通過限定目錄權限來分離的,可以使用一些特殊的符號~來繞過,比如提交這樣的xxx.php?page=~/../boot,就可以直接跳轉到硬碟目錄下,
繞過檔案后綴過濾
一些Web應用程式在讀取檔案前,會對提交的檔案后綴進行檢測,攻擊者可以在檔案名后放一個空位元組的編碼,來繞過這樣的檔案型別的檢查,
比如:../../../../boot.ini%00.jpg,Web應用程式使用的Api會允許字串中包含空字符,當實際獲取檔案名時,則由系統的Api會直接截短,而決議為../../../../boot.ini,
在類Unix的系統中也可以使用Url編碼的換行符,例如:../../../etc/passwd%0a.jpg如果檔案系統在獲取含有換行符的檔案名,會截短為檔案名,也可以嘗試%20,例如: ../../../index.php%20
繞過來路驗證
Http Referer : HTTP Referer是header的一部分,當瀏覽器向web服務器發送請求的時候,一般會帶上Referer,告訴服務器我是從哪個頁面鏈接過來的
在一些Web應用程式中,會有對提交引數的來路進行判斷的方法,而繞過的方法可以嘗試通過在網站留言或者互動的地方提交Url再點擊或者直接修改Http Referer即可,這主要是原因Http Referer是由客戶端瀏覽器發送的,服務器是無法控制的,而將此變數當作一個值得信任源是錯誤的,
0x04 漏洞防御
1、系統開發階段的防御
在系統開發階段應充分考慮系統的安全性,對目錄遍歷漏洞來說,需對用戶提交的內容進行嚴格的過濾,這里主要指過濾目錄跳轉符,字符截斷符,dir命令等,
2、系統運行階段的防御
nginx配置open_basedir=/home/wwwroot/blog.evalshell.com:/tmp/:/proc/
0x05 參考
http://blog.evalshell.com/2021/01/10/第四十三節課-路徑遍歷漏洞/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/247080.html
標籤:其他
上一篇:Codeforces Round #695 (Div. 2)-B. Hills And Valleys
下一篇:HTTP和HTTPS
