目錄遍歷
192.168.203.128/test/mlbl.php?path=/
path
參數輸入指令實現目錄遍歷
漏洞產生環境
網站提供文件下載,文件儲存在服務器中,網站腳本利用代碼回去此目錄文件顯示至網頁,若沒有進行相關驗證,則會產生目錄遍歷漏洞
突破方式(大佬文章https://www.cnblogs.com/s0ky1xd/p/5823685.html):
- 加密參數傳遞的數據
在Web應用程序對文件名進行加密之後再提交,比如:downfile.jsp?filename= ZmFuLnBkZg-
,在參數filename用的是Base64加密,而攻擊者要想繞過,只需簡單的將文件名加密後再附加提交即可。所以說,採用一些有規律或者輕易能識別的加密方式,也是存在風險的。 - 編碼繞過
嘗試使用不同的編碼轉換進行過濾性的繞過,比如Url編碼,通過對參數進行Url編碼提交,downfile.jsp?filename= %66%61%6E%2E%70%64%66
來繞過。 - 目錄限定繞過
在有些Web應用程序是通過限定目錄權限來分離的。當然這樣的方法不值得可取的,攻擊者可以通過某些特殊的符號~
來繞過。形如這樣的提交downfile.jsp?filename=~/../boot
。能過這樣一個符號,就可以直接跳轉到硬盤目錄下了。 - 繞過文件後綴過濾
一些Web應用程序在讀取文件前,會對提交的文件後綴進行檢測,攻擊者可以在文件名後放一個空字節的編碼,來繞過這樣的文件類型的檢查。
例如:../../../../boot.ini%00.jpg
,Web應用程序使用的Api會允許字符串中包含空字符,當實際獲取文件名時,則由系統的Api會直接截短,而解析爲../../../../boot.ini
。
在類Unix的系統中也可以使用Url編碼的換行符,例如:../../../etc/passwd%0a.jpg
如果文件系統在獲取含有換行符的文件名,會截短爲文件名。也可以嘗試%20,例如:../../../index.jsp%20
- 繞過來路驗證
Http Referer :HTTP Referer是header的一部分,當瀏覽器向web服務器發送請求的時候,一般會帶上Referer,告訴服務器我是從哪個頁面鏈接過來的
另一種目錄遍歷
web服務器配置不當
index of /
搜索語法搜索目錄遍歷漏洞
intitle:index of
只是學習筆記,未完善內容之後有需要時會補充