iT邦幫忙

2026 iThome 鐵人賽

0
Security

從 Linux 到 Pwn:30 天學習資安攻防系列 第 30 篇

Day 29|使用 --help 閱讀程式文件:找出正確參數值

  • 分享至 

  • xImage
  •  

前言
前幾天,我們學會使用 man 查閱 Linux 程式的使用手冊,也練習了透過 man -k 搜尋隱藏的手冊。
不過,並不是每個程式都有提供 man page。有些程式會在執行時提供 --help 或 -h 等參數,直接顯示程式的使用說明。
今天的 pwn.college 題目,就是要練習透過 --help 閱讀程式文件,找出取得 Flag 的正確方法。
這次除了需要找到正確的選項之外,還要注意選項是否需要額外的參數值,以及程式是否提供其他可以協助我們的功能。


一、使用 --help 查看程式說明

題目:Helpful Programs
首先,我們在終端機輸入 /challenge/challenge --help
執行後,程式顯示以下內容
https://ithelp.ithome.com.tw/upload/images/20261015/20183180wSNAlaupsP.png
從這份說明可以看出,程式提供了幾個不同的選項

選項 功能
-h、--help 顯示使用說明
--fortune 顯示 fortune 內容
-v、--version 顯示版本資訊
-g、--give-the-flag 提供正確的值以取得 Flag
-p、--print-value 顯示能讓 -g 成功取得 Flag 的值

其中,最值得注意的是最後兩個選項。


二、使用 --print-value 找出答案

既然說明文件已經告訴我們 --print-value 的用途,接下來就直接執行/challenge/challenge --print-value
終端機輸出如下
https://ithelp.ithome.com.tw/upload/images/20261015/201831807mVOR8O5UD.png
因此,我們找到了正確的參數值833
這個步驟讓我理解到,閱讀程式說明時,不應該只注意看起來像答案的主要選項,也要留意其他輔助功能。
如果沒有仔細閱讀 --help,就可能忽略 --print-value,花更多時間猜測正確的數值。


三、實際操作:取得 Flag

找到正確的值後,我們就可以使用 -g 選項取得 Flag。
執行結果如下
https://ithelp.ithome.com.tw/upload/images/20261015/20183180XVz13wbBcs.png
成功取得本次挑戰的 Flag!
回顧整個操作流程

  1. 使用 --help 查看程式說明。
  2. 找出 -g、--give-the-flag 的功能。
  3. 發現 -p、--print-value 可以提供正確的參數值。
  4. 執行 /challenge/challenge --print-value。
  5. 得到數值 833。
  6. 執行 /challenge/challenge -g 833。
  7. 成功取得 Flag。

四、短選項與長選項

今天的題目也讓我接觸到命令列參數的另一個觀念,同一個功能可能同時提供短選項與長選項。
例如

短選項 長選項 功能
-h --help 顯示使用說明
-v --version 顯示版本資訊
-g --give-the-flag 提供參數值以取得 Flag
-p --print-value 顯示正確的參數值

短選項通常比較精簡,長選項則比較容易從名稱理解用途。
實際上應該使用哪種寫法,仍然要以程式的說明文件為準。


五、今天的心得

今天的題目讓我發現,有時候取得 Flag 的關鍵並不是複雜的操作,而是能不能正確閱讀程式提供的資訊。這次只要執行 --help,就能看到程式支援的所有選項。其中,--print-value 更直接提供了 --give-the-flag 所需要的正確數值。如果只看到 -g 需要一個值,就開始嘗試不同數字,反而會浪費時間。對我來說,今天最大的收穫是學會從程式的使用說明中尋找解決問題的線索。未來使用 Linux 工具或資安測試工具時,我也可以先查看文件,理解工具提供的功能,再決定如何操作。比起盲目嘗試,先理解工具的使用方式,通常能更有效率地解決問題。



上一篇
Day 28|搜尋隱藏手冊:使用 man -k 找出隨機命名的文件
下一篇
Day 30|Shell Builtins:使用 help 查詢 Shell 內建指令 前言
系列文
從 Linux 到 Pwn:30 天學習資安攻防 共 31 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言