下載題目相關檔案
下載VaultDoorTraining.java
wget https://challenge-files.picoctf.net/c_fickle_tempest/d7b689cc9023793c28c50d477d174931581f04eee4a8b7de4bb6162e50b89fe1/VaultDoorTraining.java
使用IDE開啟檔案查看
使用 intelliJ 開啟VaultDoorTraining.java

程式邏輯
graph LR
%% 定義樣式
classDef start_end fill:#f96,stroke:#333,stroke-width:2px;
classDef process fill:#fff,stroke:#333,stroke-width:1px;
classDef logic fill:#e1f5fe,stroke:#01579b,stroke-width:2px;
classDef decision fill:#fff9c4,stroke:#fbc02d,stroke-width:2px;
Start([開始]) --> Input[讀取 userInput]
subgraph 使用者輸入
Input --> Sub["擷取大括號內字串
(input.substring)"]
end
Sub --> Check{"checkPassword
驗證密碼"}
subgraph 判斷
Check -- "正確" --> Success["印出 Access granted."]
Check -- "錯誤" --> Fail["印出 Access denied!"]
end
Success --> End([結束])
Fail --> End
%% 套用樣式
class Start,End start_end;
class Input,Sub,Success,Fail process;
class Check decision;
首先程式要我們輸入一個密碼
程式會將使用者輸入的密碼開頭’picoCTF{‘及最後一個字元去除
接著呼叫checkPassword進行比對
我們從checkPassword函數可以看到比對的正確密碼
接著我們把前面去除的’picoCTF{‘及’}‘加上即可獲得正確flag



說些什麼吧!