Skip to content

滲透筆記

滲透筆記是綁在單一題目上的記事本,你寫的每一個字都只留在自己的瀏覽器裡。

開啟面板

題目頁面上方導覽列的「筆記」按鈕是唯一能打開這個面板的控制項。螢幕寬度低於 lg 斷點時,按鈕只剩鉛筆圖示,文字會被藏起來。

按鈕上掛著一個數字徽章,顯示這一題目前有幾則筆記。徽章只在數量大於零時才畫出來,所以還沒寫過任何東西的題目是完全看不到徽章,而不是看到一個「0」。

面板打開後,標題列寫的是「滲透筆記」。

面板尺寸

面板標題列上有「最大化」/「還原」、「最小化」與「關閉」。

尺寸怎麼進入版面怎麼離開
標準面板打開時就是這個尺寸貼齊畫面右緣,寬螢幕佔一半寬度、窄螢幕佔滿寬度,其餘畫面蓋上一層半透明遮罩。清單填滿整個面板;正在編輯時,編輯區佔上半部,清單留在下半部「最大化」、「最小化」、「關閉」,或點一下遮罩的任何位置
最大化標題列的「最大化」按鈕佔滿整個畫面。寬螢幕時清單佔左邊 30%、編輯區佔右邊 70%;沒有任何筆記在編輯時,右側寫的是「選取一篇筆記進行編輯,或按 + 新增」。窄螢幕一次只看得到其中一側,並有一顆返回鍵從編輯區退回清單「還原」,回到標準尺寸
最小化標題列的「最小化」按鈕面板消失,畫面右下角改成一顆浮動按鈕。寬螢幕時這顆按鈕帶著文字與同一個筆記數徽章;窄螢幕時只是一顆圓形圖示點那顆浮動按鈕

最小化會把面板本體卸載,所以它跟關閉一樣會丟掉沒存的編輯內容。還原之後編輯區會回到同一篇筆記,但顯示的是那篇筆記最後存下的內容。

寫一篇筆記

  1. 按標題列的 +(「新增筆記」)開一篇新的,或按既有卡片上的鉛筆鈕編輯那一篇。
  2. Edit 分頁打字。Preview 分頁會把內容當 Markdown 渲染,採 GFM 規則,且單一換行就會斷行。這兩個分頁名稱是寫死的英文,不會翻譯。
  3. 按「儲存」。

按「取消」會直接結束編輯,剛才打的字一個都不留。

標準尺寸下,編輯區只在打開的那一刻讀一次筆記內容。如果你正在編輯 A 篇、還沒儲存就去按第二張卡片的鉛筆鈕,編輯區裡仍然是 A 的文字——此時按「儲存」就會把 A 的內容寫進第二篇,覆蓋掉原本的內容。同樣情況下按 +,則會生出一篇內容等於 A 的新筆記。請先把一篇存好或取消,再去開另一篇。最大化尺寸沒有這個問題。

點卡片的行為依尺寸而不同:最大化時點一下就直接進入編輯;標準尺寸下點一下只會選取那張卡片。

什麼才算存下

只有按下「儲存」才算把筆記交出去存檔。 打字的過程中不會自動存。

你做的動作已存檔的筆記編輯區裡的文字
按「儲存」寫進瀏覽器資料庫,重新整理或關掉分頁再回來都還在清空,結束編輯
按「取消」不變丟棄
按「關閉」或點遮罩不變丟棄,沒有任何確認
按「最小化」不變丟棄
重新整理或離開頁面不變丟棄

沒存的編輯內容不會被寫到任何地方——面板開機時讀的那個草稿鍵,程式只會讀取與移除,從來不會寫入——所以編輯區一被卸載那些字就消失,也沒有任何救回的辦法。

關閉面板會把面板尺寸清回標準尺寸。搜尋框裡的字會留著,所以下次打開時清單可能仍然是篩選過的。已儲存的筆記本身不受影響。

筆記存在哪裡

  • 筆記存在你自己瀏覽器的 IndexedDB 資料庫 challenge-tools 裡的 pentest-notes store,旁邊還有 attack-sessionscode-drafts。任何內容都不會上傳到伺服器。
  • 筆記是每一題各自獨立的。開啟某一題只會載入標記為該題資料夾名稱的筆記,不會看到別題的內容。
  • 這個鍵是題目資料夾名稱而不是網址,所以同一題的英文版與繁體中文版共用同一份筆記。

有三件事會讓筆記消失:

  • 在面板裡刪掉一篇——按下去就立刻刪除,沒有確認步驟;
  • 清掉瀏覽器的網站資料,整個資料庫會一起被丟掉,而且救不回來;
  • 換一個瀏覽器或換一台裝置開這個網站,那裡根本沒有這個資料庫。

筆記與攻擊紀錄住在不同的 store,所以重新進入已解開的題目不會動到筆記——但那一題的攻擊紀錄會被換掉,見疑難排解

筆記清單

每張卡片只顯示筆記前兩行非空白的內容;內容全空的筆記顯示「(空筆記)」。預覽下方是建立時間,被重新編輯存過的筆記會在時間後面多一個「(已編輯)」。

卡片上的編輯與刪除按鈕平時是隱藏的,只有滑鼠移到卡片上才出現。觸控裝置沒有 hover,因此按不到這兩顆按鈕。

清單有兩種空狀態:完全沒有筆記時顯示「還沒有筆記,按 + 新增」;有筆記但搜尋不到任何一篇時,改顯示「沒有符合搜尋的筆記」。

搜尋

面板上方的搜尋框只比對筆記內文,且不分大小寫。時間與「(已編輯)」標記都不在比對範圍內。

搜尋框判斷「是不是空的」時會先去頭尾空白,實際拿去比對的卻是沒去空白的原字串。因此多打的前置或後綴空白會被原樣拿去比對,只有筆記內文在同一個位置也有那個空白時才算命中——例如打在最後一個字後面的空白,就對不上以該字結尾的筆記。

排序

排序按鈕在「新→舊」與「舊→新」之間切換,依每篇筆記的建立時間排列。滑鼠移上去的提示會寫出目前的方向,以及點下去會切換成哪一個方向。

刪除筆記

刪除會同時把那篇筆記從清單與資料庫移除。攻擊紀錄裡對應的那一筆事件則原封不動留著——那條時間軸是唯讀累加的——所以被刪掉的文字仍然會出現在匯出的攻擊紀錄裡。

編輯的行為剛好相反:儲存一次編輯會把攻擊紀錄裡那筆事件原地改寫並蓋上更新時間,所以那裡只留得下最新版本。

匯出

兩顆匯出按鈕都長在題目說明欄位的成功訊息旁邊,在你交出正確的 flag 之前,它們兩顆都不存在。

按鈕產出檔名
「下載滲透筆記」一個 Markdown 檔,內含這一題所有已儲存的筆記pentest-notes-<題目資料夾名稱>-<YYYYMMDD>.md
「下載攻擊紀錄」一個 JSON 檔,涵蓋整場作業:題目說明、HTTP 請求與回應歷程、程式碼執行紀錄、筆記、flag 提交紀錄與時間資訊,開頭還附一段 system prompt,把整份檔案丟給 AI 就能請它寫成 writeupattack-session-<題目資料夾名稱>-<YYYYMMDD-HHMMSS>.json

Markdown 檔的第一行是一級標題,把一個固定的繁體中文標籤與題目標題接在一起;那個標籤不會隨介面語系翻譯。接著以每個日曆日一個二級標題分節,每篇筆記以 #### HH:MM 開頭,後面接一條 --- 分隔線。

匯出一律照時間由舊到新排列,不管排序按鈕目前設在哪一邊;它讀的也是完整的筆記集合而不是篩選後的清單,所以搜尋框裡留著的字不會讓匯出漏掉任何一篇。

這兩顆按鈕不會一起消失:

  • 答對之後重新整理頁面,兩顆都會消失。成功訊息與兩顆按鈕都要等你再次交出正確的 flag 才會回來。
  • 工具資料庫開不起來時,只有「下載攻擊紀錄」會消失。「下載滲透筆記」沒有被同一道條件擋住,仍然會出現——見疑難排解

如果你的作業沒有被記錄

題目頁最上方出現一條橘色警告、標題寫著「這次作業沒有被記錄」時,代表你寫的東西沒有進到儲存空間——成因與處理方式請看疑難排解