はじめに
Hack The Boxは,ペネトレーションテスターやハッカーがスキルを練習し,向上させるための人気のあるプラットフォームです.その中でも比較的初心者向けな「Under Construction」というボックスを攻略する方法について,段階的にご紹介します.
HTB Beginner Track
前回の挑戦
前回の記事はこちら,「Netmon」を攻略しました.
https://hamaruki.com/hack-the-box_netmon_walkthrough/
魔法使いへの道とは
http://hamaruki.xmagix.com/2023/04/09/the-road-to-wizard-hacker/
JWT
JWTとは?
JSON Web Token(JWT)は,JSONオブジェクトとして情報を安全に送信するための標準的な方法で認証トークンの一種です.JWTは,Webアプリケーションでユーザーの認証や認可にしばしば使用されます.
https://hamaruki.com/hack-the-box-what-is-jwt/
https://hamaruki.com/history-and-types-of-authentication-tokens/
JWTの動作原理
JWTは,ヘッダー,ペイロード,署名の3つの部分から構成されています.ヘッダーにはトークンの種類と署名アルゴリズムが含まれます.ペイロードには,ユーザー情報や認可の詳細など,送信されるデータが含まれます.署名は,秘密鍵を使用して生成され,トークンの真正性を検証するために使用されます.
対称性JWTとは?
https://hamaruki.com/what-is-symmetry-jwt/
非対称性JWTとは?
https://hamaruki.com/understanding-and-implementing-asymmetric-jwt/
Algorithm confusion attacksとは?
Algorithm confusion attacksは,JWTの署名アルゴリズムに存在する脆弱性を悪用した攻撃の一種です.攻撃者は,JWTのヘッダーを操作して,署名アルゴリズムを変更し,有効な署名を生成することができます.
https://hamaruki.com/what-is-jwts-algorithmic-confusion-attack/
情報収集
ますはこちらのサイトにアクセスします.
そうするとこのようなページがでてきます.
適当なユーザー名とパスワードを入力するとエラー表示がでてきます.
ユーザー名とパスワードを登録してみます.
登録できると成功の文字が表示されます.
そうすると,無事にアクセスできます.
開発中のようですね
Welcome admin
This site is under development.
Please come back later.
日本語訳
ようこそ管理者
このサイトは開発中です。
また後で来てください。
JWTの解析
JWTを使用しているので,中身を見てみます.
ここで,公開鍵があることが分かります.前回の対称性JWTと非対称性JWTの記事で書いたとおり,公開鍵があれば署名を上書きできますのでここの脆弱性がありそうですね.
ペイロードのみを抽出し,公開鍵の部分を整形します.
{
"username": "admin",
"pk": "-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA95oTm9DNzcHr8gLhjZaY
ktsbj1KxxUOozw0trP93BgIpXv6WipQRB5lqofPlU6FB99Jc5QZ0459t73ggVDQi
XuCMI2hoUfJ1VmjNeWCrSrDUhokIFZEuCumehwwtUNuEv0ezC54ZTdEC5YSTAOzg
jIWalsHj/ga5ZEDx3Ext0Mh5AEwbAD73+qXS/uCvhfajgpzHGd9OgNQU60LMf2mH
+FynNsjNNwo5nRe7tR12Wb2YOCxw2vdamO1n1kf/SMypSKKvOgj5y0LGiU3jeXMx
V8WS+YiYCU5OBAmTcz2w2kzBhZFlH6RK4mquexJHra23IGv5UJ5GVPEXpdCqK3Tr
0wIDAQAB
-----END PUBLIC KEY-----
",
"iat": 1660734253
}
署名の欄にコピペすると無事に検証できましので,このJWTの認証鍵であることが分かりました.
コメント