前言
前一天學習了 Linux 中常用的檔案讀取指令 cat
並透過 cat flag
成功讀取 Home Directory 中的 Flag。
今天的 Challenge 則進一步結合了前面學過的 Absolute Path(絕對路徑)概念,學習如何直接透過完整路徑存取檔案。
在 Linux 中 cat 最常用來顯示檔案內容。
例如 cat file.txt
如果檔案內容為 Hello Hackers!
則會輸出 Hello Hackers!
這也是 Linux 中最常見的檔案讀取方式之一。
前一天使用的是 cat flag
這是一種Relative Path(相對路徑)
因為 flag 並沒有從根目錄開始表示位置
Linux 會根據目前工作目錄來尋找檔案。
如果使用 cat /flag
則屬於Absolute Path(絕對路徑)
因為 / 代表 Linux 的根目錄(Root Directory)
系統會從根目錄開始尋找指定檔案。
題目:catting absolute paths
這次 Challenge 提到I will not copy it to your home directory, but I will make it readable.
也就是說 Flag 不再放在 /home/hacker/flag
而是直接位於 /flag
此外題目也特別提醒You can read it with cat at its absolute path: /flag
因此這次不需要尋找檔案位置。
直接使用cat /flag
即可完成挑戰。
由於/flag
是一個Absolute Path(絕對路徑)
因此無論目前位於哪個目錄,都可以正確找到這個檔案。
例如 cd /tmp cat /flag
或 cd /home/hacker cat /flag
都能得到相同結果。
這就是 Absolute Path 的優點。
假設使用 cat flag
Linux 會從目前工作目錄開始尋找。
如果目前位於 /home/hacker
那麼系統會嘗試尋找 /home/hacker/flag
但如果 Flag 並不在這裡,就會出現錯誤。
而 cat /flag
則永遠指向 /flag
不受目前工作目錄影響。
因此在系統管理與資安分析中,絕對路徑經常被使用。
/flag題目中特別提到**/flag is where the flag always lives in pwn.college**
也就是說 /flag
其實一直都存在於 pwn.college 的系統中。
只是大部分 Challenge 都會透過權限限制、程式邏輯或其他方式阻止我們直接讀取。
因此後面學習 Linux、Reverse Engineering 與 Pwn 時,很多挑戰的最終目標其實都是想辦法取得/flag
中的內容。
今天的 Challenge 雖然非常簡單,但它把前面幾天學過的概念串聯了起來。
一方面再次練習了 cat 指令,另一方面也重新體會到 Absolute Path 的便利性。
透過絕對路徑存取檔案時,不需要考慮目前位於哪個目錄,只要路徑正確,就能找到目標。
另外看到題目提到 /flag 一直存在於 pwn.college 中,也讓我開始理解後續挑戰的方向。
未來許多題目可能不是單純找到 Flag,而是想辦法突破限制、取得存取 /flag 的能力。