Hello there, ('ω')ノ
🔐 認証バイパスの概要
このラボでは、MongoDBを使用したログイン機能に対して、NoSQLインジェクションを利用して管理者アカウントに不正ログインする方法を学びます。
🛠️ 手順
ログインリクエストの確認 Burp Suiteのブラウザで、
wiener:peter
の資格情報を使用してログインし、POST /login
リクエストを確認します。$ne
演算子を使用したインジェクションのテストusername
フィールドの値を{"$ne": ""}
に変更し、リクエストを送信します。
{
"username": {"$ne": ""},
"password": "peter"
}
ログインが成功すれば、$ne
演算子が適用されていることを示します。
$regex
演算子を使用した管理者アカウントの特定username
フィールドに{"$regex": "admin.*"}
を設定し、password
フィールドには{"$ne": ""}
を設定してリクエストを送信します。
{
"username": {"$regex": "admin.*"},
"password": {"$ne": ""}
}
これにより、admin
で始まるユーザー名を持つアカウントにログインできる可能性があります。
ブラウザでの確認 Burp Suiteのレスポンスで「Show response in browser」を選択し、表示されたURLをブラウザで開きます。
管理者アカウントにログインできれば、ラボは解決されます。
🎯 ポイントとコツ
演算子インジェクションの理解:
$ne
(not equal)や$regex
(正規表現)などのMongoDBの演算子を利用して、認証ロジックを操作します。レスポンスの観察: リクエストに対するレスポンスの変化を注意深く観察し、インジェクションの成功を判断します。
セッションの維持: Burp Suiteで得られたセッション情報をブラウザに適用することで、実際のログイン状態を確認できます。
Best regards, (^^ゞ