iT邦幫忙

2026 iThome 鐵人賽

DAY 0
0
Security

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

Day 13|使用 diff 比較檔案差異找出真正的 Flag

  • 分享至 

  • xImage
  •  

前言
前一天學習了 Linux 的文字搜尋工具 grep
透過關鍵字搜尋,我們可以從大量資料中快速找到需要的內容。
今天則要認識另一個非常實用的工具 diff
當兩個檔案內容非常相似時,逐行比對往往相當耗時。
這時候就可以利用 diff 幫助我們快速找出兩個檔案之間的差異。
在系統管理、程式開發以及資安分析中,這都是相當常見的技巧。


一、什麼是 diff?

diff 是 Linux 中用來比較兩個檔案差異的工具。

hacker@dojo:~$ cat file1
hello
world
hacker@dojo:~$ cat file2
hello
universe
hacker@dojo:~$ diff file1 file2
2c2
< world
---
> universe

表示第 2 行發生變更
原本world變成universe


二、題目分析

題目:comparing files
這次 Challenge 提供兩個檔案 /challenge/decoys_only.txt /challenge/decoys_and_real.txt
其中 decoys_only.txt 包含 100 個假 Flag
而 decoys_and_real.txt 則包含 100 個假 Flag + 1 個真正的 Flag
因此兩個檔案的差異只有真正的 Flag。


三、解題思路

如果直接使用 cat /challenge/decoys_and_real.txt 會看到大量內容。
而且裡面有 100 個假 Flag 很難靠肉眼分辨。
因此最有效率的方法是直接比較兩個檔案
diff /challenge/decoys_only.txt /challenge/decoys_and_real.txt


四、實際操作

執行 diff 加上題目提供的兩個檔案
/challenge/decoys_only.txt&/challenge/decoys_and_real.txt
系統會列出兩個檔案不同的地方。
由於 decoys_and_real.txt = 100 個假 Flag + 1 個真 Flag
https://ithelp.ithome.com.tw/upload/images/20260929/20183180I3zZSuH5X4.png
因此輸出中的新增內容就是我們要找的答案。
成功取得真正的 Flag。


五、為什麼 diff 很重要?

在真實環境中,diff 不只是用來解 CTF。
例如

  • 比較設定檔 diff config_old.conf config_new.conf
  • 比較程式版本diff v1.py v2.py
  • 比較日誌差異diff log_before.txt log_after.txt
  • 比較系統更新前後內容diff backup.txt current.txt

都非常常見。


六、今天的心得

今天第一次使用 Linux 的 diff 指令。和前一天的 grep 不同,grep 是從大量資料中搜尋關鍵字,而 diff 則是直接比較兩份資料之間的差異。這讓我想到資安分析中的許多情境,例如比較系統更新前後的設定檔、分析惡意程式修改了哪些內容,甚至檢查程式碼是否遭到竄改。透過這次 Challenge,也發現 Linux 提供的工具雖然看起來簡單,但組合起來卻能有效解決許多實際問題。


上一篇
Day 12|使用 grep 在大量資料中搜尋 Flag
下一篇
Day 14|使用 ls 探索目錄內容
系列文
從 Linux 到 Pwn:30 天學習資安攻防 共 15 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言