在昨天的文章中,我們學會了如何透過 F12 檢視前端原始碼與觀察 HTTP 標頭。今天我們要進一步探討網頁狀態管理的靈魂——Cookie 與 Session。
你是否想過,為什麼你在網站登入後,重新整理或切換頁面時不需要重新輸入密碼?伺服器是怎麼「記住」你的?今天我們就透過實戰,看看伺服器如何利用 Cookie 辨識身分,以及當 Cookie 缺乏安全防護時,攻擊者是如何透過「改餅乾」來騙過伺服器的!
透過 PicoCTF 的經典 Web 題目,掌握以下核心技能:
Session ID(放在 Cookie 中),瀏覽器憑這個 ID 來證明「我是誰」。snickerdoodle)會顯示對應的訊息,題目提示我們能否找到最特別的那塊餅乾?
開啟網頁後,嘗試輸入 snickerdoodle 並提交,頁面會顯示:「That is a cookie! Not very special though.」。
這時候我們應該聯想到:伺服器是如何判斷我輸入的是哪一種餅乾的? 是透過 URL 參數,還是透過 Cookie 記錄數值?
讓我們開啟 F12 觀察 Cookie 的變化!
F12 開啟開發者工具,切換到 Application(應用程式) 頁籤。name 的 Cookie 數值:
snickerdoodle 時,name 的值(Value)為 0。
1),再按F5重新載入,發現頁面變成了chocolate cookies。
關鍵發現: 伺服器是用整數索引值(0, 1, 2, 3...)來區分不同的餅乾與使用者權限!
既然 Cookie 是儲存在我們的瀏覽器端,我們就能隨意修改它:
name 的 Value 欄位,將值修改為 18。0, 1, 2, 3...),直到將 name 修改為 18 重新整理頁面後,畫面上跳出了真正的管理員訊息與 Flag!


Flag:
picoCTF{3v3ry1_l0v3s_c00k135_a4dadb49}