今天我們就要來進行path traversal啦,目前預計這裡會寫到2~3天,第一天寫些基本的,第二天寫些進階內容,接著防護部分看情況,可能和第二天寫在一起,也有可能單開一天
路徑遍歷是一種由於網頁在接受使用者輸入時沒有對其名稱進行檢查或處理,從而使網頁將檔案名稱判斷成路徑,導致檔案去到不該去的路徑或是使滲透者能夠讀取到不該看到的資料的一種後端漏洞

我們最終的目標是要把檔案放到指定的目錄,但這題目前先只要跳脫到其他地方就好
我們先上傳一個普通檔案看看

可以看到我們的檔案被送到路徑home/kali/.webgoat-2026.3/PathTraversal/mingming/test了
同時從上面的提示可以看到,我們現在要送入檔案的系統是Linux,也就是說我們要用的路徑穿越方法是../
同時,我們再次測試一下有沒有其他奇怪的地方,例如那個test,把他修改一下

看起來這裡也有可能成功,畢竟這網頁看起來就只是單純幫Full Name那裏進行修改,我們可以嘗試兩個方法
先試試看第一個

結果會發現檔案無法正常創建,因為我們使用的是kali linux, ../同樣也會影響到我們系統,所以系統會限制不能創造這樣的檔案,那我們就從第二種方法下手
在輸入那裏填../test後update

成功解了這一題

第二題,提到了開發者將../修掉了,但我們還是來嘗試一下,使用上一題的答案../test試試看

上傳的檔案還是在同一個地方,看起來一般的../已經不能用了
先假設是單純使用輸入驗證,使用看看....//這種刪除一次後還是會組合成../的方法

Uhhh......沒想到真的對了

老樣子,使用上一題的答案進行測試

看起來這次甚至和Full Name無關了,倒是直接展示給我們看檔案的位置
看起來我們要從檔案下手了,但又沒辦法直接改檔名......
那就先來看看封包吧

在這封包中,和我們上傳的檔案關係最大的地方,莫過於那個Content-Disposition: form-data; name="uploadedFileRemoveUserInput"; filename="Pathcat.txt"
了,
讓我們送入repeater,更改檔案名稱成../Pathcat.txt看看

成功!