iT邦幫忙

2026 iThome 鐵人賽

DAY 0
0
Security

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

Day 12|使用 grep 在大量資料中搜尋 Flag

  • 分享至 

  • xImage
  •  

前言
前幾天學習了 Linux 中常用的檔案讀取指令 cat
透過 cat 可以直接查看檔案內容。
不過如果檔案非常大,裡面有成千上萬甚至數十萬行資料,單純使用 cat 可能很難快速找到需要的資訊。
因此 Linux 提供了另一個強大的工具 grep
它可以幫助我們從大量文字中快速搜尋特定內容。


一、什麼是 grep?

grep 是 Linux 中非常常見的文字搜尋工具。
最基本的使用方式如下 grep 搜尋字串 檔案名稱
例如 grep hello file.txt
代表在 file.txt 中尋找包含 hello 的所有行。
如果找到符合條件的內容,便會直接顯示出來。


二、為什麼需要 grep?

假設有一個檔案 data.txt 裡面有100000 行資料
如果使用 cat data.txt 終端機可能瞬間輸出大量文字。
這時候想找到特定內容就會非常困難。
而使用 grep 關鍵字 data.txt
則可以直接定位目標資訊。
這也是許多系統管理員與資安人員分析 Log 時最常使用的方法之一。


三、題目分析與提示

題目:grepping for a needle in a haystack
這次 Challenge 提到 I've put a hundred thousand lines of text
into /challenge/data.txt

表示 /challenge/data.txt 內含十萬行資料。
如果直接使用 cat /challenge/data.txt
會產生非常大量的輸出。
因此題目要求我們使用grep
搜尋 Flag。

除此之外題目還特別給了一個提示The flag always starts with the text pwn.college
因此搜尋關鍵字可以直接使用 pwn.college


五、實際操作

首先查看題目提供的檔案 ls /challenge
https://ithelp.ithome.com.tw/upload/images/20260927/20183180NVcAbo2y8h.png
可以看到 data.txt

接著使用到 grep 加上題目提示的 pwn.college 加上我們的路徑 /challenge/data.txt
https://ithelp.ithome.com.tw/upload/images/20260927/20183180BYEw3iXJWD.png
系統便會搜尋整份檔案中所有包含 pwn.college 的內容。
成功找到 Flag 並完成 Challenge。


六、如果使用 cat 會怎樣?

假設直接執行 cat /challenge/data.txt
由於檔案包含十萬行資料,
終端機會一次輸出大量文字。
不但難以閱讀,也很難快速找到 Flag。
因此 grep 比起 cat 效率高得多。


七、grep 的實際應用

除了 CTF 題目之外,
grep 在真實環境中也經常被使用。
-例如搜尋錯誤訊息 grep error server.log
-搜尋登入紀錄 grep login auth.log
-搜尋 IP 位址 grep 192.168.1.1 access.log
-搜尋設定內容 grep password config.txt
因此 grep 可以說是 Linux 使用者必學的工具之一。


八、今天的心得

今天第一次接觸 Linux 中非常實用的搜尋工具 grep。
和前幾天使用的 cat 相比,grep 更適合處理大量資料。
當檔案只有幾行內容時,直接使用 cat 就足夠了;但當檔案成長到數萬甚至數十萬行時,使用 grep 搜尋關鍵字會有效率許多。
透過這次 Challenge,開始理解為什麼許多資安課程、CTF 題目以及系統管理工作都會大量使用 grep。
它不只是搜尋工具,更是分析大量資料的重要助手。


上一篇
Day 11|使用絕對路徑尋找隱藏的 Flag
下一篇
Day 13|使用 diff 比較檔案差異找出真正的 Flag
系列文
從 Linux 到 Pwn:30 天學習資安攻防 共 15 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言