1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

picoCTFのWeb Exploitation問題「Cookie Monster Secret Recipe」を解いたので、その解説と備忘録をまとめます。

CTF初学者の方や、Cookieを使ったWebの仕組み・エンコードの基本を学びたい方の参考になれば幸いです。

問題概要

  • カテゴリ: Web Exploitation
  • 難易度: Easy
  • 問題文:

Cookie Monster has hidden his top-secret cookie recipe somewhere on his website. As an aspiring cookie detective, your mission is to uncover this delectable secret. Can you outsmart Cookie Monster and find the hidden recipe?

クッキーモンスターがウェブサイトのどこかに極秘のクッキーレシピ(Flag)を隠したようです。クッキーデテクティブ(探偵)として、これを見つけ出すのがミッションです。


解法手順

1. サイトの調査と挙動確認

問題のインスタンスを起動し、提供されたURLにアクセスするとログイン画面が表示されます。

まずは開発者ツール(F12)を開き、「アプリケーション(Application)」タブ > 「ストレージ(Storage)」 > 「クッキー(Cookies)」 を確認します。

[補足] 最初はCookieに何も格納されておらず、空の状態でした。

※参考にさせていただいた記事
【picoCTF】Cookie 解説(Qiita - @pipi0813)

2. ログイン試行によるCookieの生成

次に、挙動の変化を追うために、適当なIDとパスワード(例: a / 123)を入力してログインを試みます。

画面にログイン失敗のエラーが表示されたタイミングで再度開発者ツールのCookieを確認すると、新しいCookie(cookievalue)が出現しました。

  • Name: cookievalue
  • Value: (ランダムな英数字の文字列)

この値にFlagが隠されていると推測し、文字列をコピーします。

3. CyberChefによるデコード

コピーした文字列を、暗号・エンコードの有名なWebツール「CyberChef」に貼り付けます。

Base64でエンコードされているとアタリをつけ、Recipeに From Base64 を適用したところ、無事にFlag文字列(picoCTF{...})が出現しました。


補足:Base64とは?

Base64は、データを「A-Z」「a-z」「0-9」の英数字と、一部の記号(+, /)の計64種類の文字だけで表現するエンコード方式。
データ長が足りない場合は、末尾に = または == という記号を追加(パディング)して長さを調節するルールがある。

今回は、文字列がアルファベットの大文字・小文字、数字だけで構成されていたため、まずBase64を試してみました。

※参考にさせていただいた記事
base64ってなんぞ??理解のために実装してみた(Qiita - @PlanetMeron)


まとめ

  • ログイン失敗などの「状態の変化」をトリガーにCookieが生成されることがある

  • Base64は「暗号」ではなく「エンコード(データ形式の変換)」なので、鍵を持っていなくても、誰でも元のデータに復元(デコード)できる。そのため機密情報をエンコードしただけでCookieに保存するのは危険

最後までお読みいただきありがとうございました。


1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?