簡(jiǎn)介:
目錄穿越(又稱目錄遍歷diretory traversal/path traversal)是通過目錄控制序列 ../ 或者文件絕對(duì)路徑來訪問存儲(chǔ)在文件系統(tǒng)上的任意文件和目錄的一種漏洞。
原理:
web應(yīng)用對(duì)于url請(qǐng)求沒有進(jìn)行合理的審查與過濾,導(dǎo)致構(gòu)造目錄控制序列直接傳入文件系統(tǒng)apl。
危害:
對(duì)于存在該漏洞且文件權(quán)限沒有嚴(yán)格控制的文件系統(tǒng),攻擊者可以肆意的瀏覽敏感系統(tǒng)文件、配置文件及日志文件等。
常見攻擊手法:
- Url參數(shù):../(父級(jí)目錄,js) ??..\(父級(jí)目錄,php + dev css)
- Nginx off by Slash:https://xxx.xx.com/files../
- UNC Bypass(通用命名規(guī)范Universal Naming Convention):\localhost\c$\windows\win.ini
常用繞過手段:
- 單次替換(雙寫):....//
- url編碼:.(%2c) ?/(%2f) ??\(%5c) ?%(%25)
- 截?cái)嗬@過(特定文件限制防御時(shí)使用):%00
練習(xí)實(shí)踐:
環(huán)境:burpsuite官網(wǎng)提供的靶場(chǎng):Web Security Academy: Free Online Training from PortSwigger
第一關(guān):
關(guān)卡提示:在產(chǎn)品圖像的顯示中包含文件路徑遍歷漏洞。
目標(biāo):為解決實(shí)驗(yàn)室,檢索/ etc / passwd文件的內(nèi)容。
?根據(jù)提示隨機(jī)打開一個(gè)產(chǎn)品信息:
F12搜集有用的頁面信息,按照官方給的提示,尋找有關(guān)圖片的信息?
?根據(jù)信息構(gòu)造url,或者右擊圖片打開圖片的完整顯示,這里我們就可以用前面說到的攻擊手法進(jìn)行測(cè)試了
?修改url后面部分,改為絕對(duì)路徑filename=/etc/passwd 發(fā)現(xiàn)行不通
采用目錄序列控制符:../ 構(gòu)造路徑filename=../etc/passwd、filename=../../etc/passwd、filename=../../../etc/passwd……進(jìn)行逐一嘗試(因?yàn)樵鄄⒉恢涝撃夸浀募?jí)別,當(dāng)然如果熟悉linux目錄結(jié)構(gòu)的話,也可一部到位),在filename=../../../etc/passwd嘗試中,發(fā)現(xiàn)返回頁面有所不同,但因?yàn)槟承╁e(cuò)誤無法顯示?
?改用burpsuite抓包改包,成功執(zhí)行
第二關(guān):
關(guān)卡提示:在產(chǎn)品圖像的顯示中包含文件路徑遍歷漏洞。應(yīng)用程序阻止遍歷序列,但將提供的文件名視為相對(duì)于默認(rèn)工作目錄。
目標(biāo):要解決實(shí)驗(yàn)室,需要檢索/ etc / passwd文件的內(nèi)容
根據(jù)提示重復(fù)第一關(guān)的操作,直接用相對(duì)路徑成功獲?。篺ilename=/etc/passwd
?
?文章來源地址http://www.zghlxwxcb.cn/news/detail-718014.html
第三關(guān):
關(guān)卡提示:在產(chǎn)品圖像的顯示中包含文件路徑遍歷漏洞。應(yīng)用程序在使用之前從用戶提供的文件名中剝離路徑遍歷序列。
目標(biāo):為解決實(shí)驗(yàn)室,檢索/ etc / passwd文件的內(nèi)容
本關(guān)加了防御措施,對(duì)目錄控制序列符號(hào)進(jìn)行了處理,需要繞過。繞過一般首選用編碼繞過,不過我試后發(fā)現(xiàn)不行,重新選擇單次替換進(jìn)行繞過,構(gòu)造filename=....//....//....//etc/passwd(有了第一關(guān)的基礎(chǔ)就不需要探測(cè)這是幾級(jí)目錄了)
?
第四關(guān):
關(guān)卡提示:在產(chǎn)品圖像的顯示中包含文件路徑遍歷漏洞。應(yīng)用程序?qū)Π窂奖闅v序列的輸入進(jìn)行分塊。然后在使用之前對(duì)輸入進(jìn)行URL解碼。
目標(biāo):為解決實(shí)驗(yàn)室,檢索/ etc / passwd文件的內(nèi)容
這關(guān)提示很明確,就是利用編碼繞過:filename=%2c%2c%2f%2c%2c%2f%2c%2c%2fetc/passwd
失?。▽?./編碼):
?Filename=%2c%2c/%2c%2c/%2c%2c/etc/passwd(將 . 編碼)失?。?/p>
Filename=..%2f..%2f..%2fetc/passwd(將/編碼)失敗:
?
?Filename=..%252f..%252f..%252fetc/passwd(將 / 和 % 編碼)成功:
?
第五關(guān)
關(guān)卡提示:在產(chǎn)品圖像的顯示中包含文件路徑遍歷漏洞。應(yīng)用程序通過請(qǐng)求參數(shù)傳輸完整的文件路徑,并驗(yàn)證所提供的路徑以預(yù)期的文件夾開始。
目標(biāo):為解決實(shí)驗(yàn)室,檢索/ etc / passwd文件的內(nèi)容
由提示可知,該關(guān)采用了固定文件路徑開頭的防御措施,這也意味著filename=/var/www/images/,或者更上一層/var/www/,甚至/var/ ,不能改動(dòng),從長(zhǎng)到短逐一進(jìn)行測(cè)試:
Filename=/var/www/images/../../../etc/passwd,成功:
?
第六關(guān):
關(guān)卡提示:在產(chǎn)品圖像的顯示中包含文件路徑遍歷漏洞。應(yīng)用程序驗(yàn)證所提供的文件名以預(yù)期的文件擴(kuò)展名結(jié)束。
目標(biāo):為解決實(shí)驗(yàn)室,檢索/ etc / passwd文件的內(nèi)容
本關(guān)對(duì)文件類型做了限制,采用%00進(jìn)行截?cái)啵?/p>
Filename=../../../etc/passwd%00.jpg
總結(jié):雖然在提示下,很容易便能達(dá)到目的,但是在實(shí)戰(zhàn)中我們只能自己去提取有用的信息為攻擊做鋪墊,可能需要用到各種繞過方式進(jìn)行組合嘗試才能達(dá)到我們想要的結(jié)果。文章來源:http://www.zghlxwxcb.cn/news/detail-718014.html
防御:
- 避免將用戶提供的輸入完全傳遞給文件系統(tǒng)API;
- 白名單驗(yàn)證,如僅允許純字母或數(shù)字字符等,在驗(yàn)證所提供的輸入之后,應(yīng)用程序應(yīng)該將輸入追加到基本目錄中,并使用平臺(tái)文件系統(tǒng)API來規(guī)范化路徑;
- 黑名單(將截?cái)喾冢┘游募愋拖拗啤?/li>
?
到了這里,關(guān)于web安全之目錄穿越的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!