iT邦幫忙

2026 iThome 鐵人賽

DAY 3
0
Security

CTF 菜鳥修練日誌系列 第 3 篇

Day 03:【Web】誰偷改了我的餅乾?Cookie 偽造與 Session 觀察

  • 分享至 

  • xImage
  •  

前言

在昨天的文章中,我們學會了如何透過 F12 檢視前端原始碼與觀察 HTTP 標頭。今天我們要進一步探討網頁狀態管理的靈魂——Cookie 與 Session。

你是否想過,為什麼你在網站登入後,重新整理或切換頁面時不需要重新輸入密碼?伺服器是怎麼「記住」你的?今天我們就透過實戰,看看伺服器如何利用 Cookie 辨識身分,以及當 Cookie 缺乏安全防護時,攻擊者是如何透過「改餅乾」來騙過伺服器的!


本日目標

透過 PicoCTF 的經典 Web 題目,掌握以下核心技能:

  1. 瞭解 HTTP Protocol 的無狀態(Stateless)特性與 Cookie/Session 的運作機制。
  2. 使用瀏覽器開發者工具(DevTools)或 Python 腳本,進行 Cookie 的檢視、修改與偽造(Cookie Tampering)。

預備觀念:什麼是 Cookie 與 Session?

  • HTTP 是無狀態的(Stateless): 伺服器預設不會記得上一次是誰發送請求。
  • Cookie(餅乾): 伺服器發給瀏覽器的小文字檔,儲存在客戶端。每一次瀏覽器向伺服器發送請求時,都會自動帶上這些 Cookie。
  • Session(會話): 伺服器端上記錄使用者狀態的機制。伺服器給瀏覽器一個 Session ID(放在 Cookie 中),瀏覽器憑這個 ID 來證明「我是誰」。

實戰題目:PicoCTF - Cookies

  • 题目分類: Web Exploitation
  • 題目敘述: 網頁上有一個搜尋框,輸入特定的餅乾名稱(如 snickerdoodle)會顯示對應的訊息,題目提示我們能否找到最特別的那塊餅乾?
    https://ithelp.ithome.com.tw/upload/images/20260917/20184211UnYzqYzfjD.png

1. 解題思維

開啟網頁後,嘗試輸入 snickerdoodle 並提交,頁面會顯示:「That is a cookie! Not very special though.」。
https://ithelp.ithome.com.tw/upload/images/20260917/20184211QORc3qEaul.png

這時候我們應該聯想到:伺服器是如何判斷我輸入的是哪一種餅乾的? 是透過 URL 參數,還是透過 Cookie 記錄數值?

讓我們開啟 F12 觀察 Cookie 的變化!

2. 實戰步驟

步驟一:觀察 Cookie 變化

  1. 按 F12 開啟開發者工具,切換到 Application(應用程式) 頁籤。
  2. 在左側選單展開 Storage -> Cookies,點擊當前網頁的網址。
  3. 觀察名稱(Name)為 name 的 Cookie 數值:
    • 當頁面顯示 snickerdoodle 時,name 的值(Value)為 0。
      https://ithelp.ithome.com.tw/upload/images/20260917/20184211Ar3aHrAL95.png
    • 嘗試改變索引值(例如:1),再按F5重新載入,發現頁面變成了chocolate cookies。
      https://ithelp.ithome.com.tw/upload/images/20260917/2018421193Dx5k44Qe.png

關鍵發現: 伺服器是用整數索引值(0, 1, 2, 3...)來區分不同的餅乾與使用者權限!

步驟二:修改 Cookie(Cookie Tampering)

既然 Cookie 是儲存在我們的瀏覽器端,我們就能隨意修改它:

  1. 在 DevTools 的 Cookie 列表內,雙擊 name 的 Value 欄位,將值修改為 18。
  2. 切換到 Console 或直接在頁面上按下 F5 重新整理。
  3. 嘗試遞增數值(例如 0, 1, 2, 3...),直到將 name 修改為 18 重新整理頁面後,畫面上跳出了真正的管理員訊息與 Flag!
    https://ithelp.ithome.com.tw/upload/images/20260917/201842111iv0LkcWkq.png
    https://ithelp.ithome.com.tw/upload/images/20260917/20184211xKO4DYQORP.png
    https://ithelp.ithome.com.tw/upload/images/20260917/20184211AaYTC9k0oz.pnghttps://ithelp.ithome.com.tw/upload/images/20260917/20184211SArwdpxkfD.png

Flag: picoCTF{3v3ry1_l0v3s_c00k135_a4dadb49}


上一篇
Day 02:【Web】網頁的秘密藏在細節裡:Inspect Element 與 HTML 原始碼
下一篇
Day 04:【Web】HTTP Request 任意門:探索 GET 與 POST 的請求特徵
系列文
CTF 菜鳥修練日誌 共 10 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言