Hello there, ('ω')ノ
確認メールを破ってバイパスするを。
脆弱性:
オープンリダイレクト
記事:
https://medium.com/@protostar0/break-and-bypass-verification-email-ac3359041272
今回は、どのメールアドレスでもアカウントを登録して確認できて。
所有者ではなく。
説明:
電子メール (例: ha99999kou@gmail.com) で bukalapak.com に登録すると、
次のようなアカウントを確認するためのメッセージが電子メールに届き。
ボタンをクリックして確認すると、このリンクに移動して。
https://glimpse.bukalapak.com/redirect?link=https%3A%2F%2Fwww.bukalapak.com%2Fconfirmation%2FaGE5OTk5OWtvdUBnbWFpbC5jb206MjY1NTE%3D&llstttu=2fb35103376a858cf5f1ca33559ae9effae3a37a5f53 67c8d2cac53b76e1db86&subject=Segera+Verifikasi+Email+Kamu&tag=confirmation&template_id=0&type=ClickEmail&user_email=ha99999kou% 40gmail.com
最初のバグは、このリンクがオープンリダイレクトで脆弱であることで。
このリンクに行って。
https://glimpse.bukalapak.com/redirect?link=https%3A%2F%2Fwww.bing.com
bing.com にリダイレクトされ。
2番目のバグはそれで。
最初のリンクはトークンを含む確認ページにリダイレクトされて。
https://www.bukalapak.com/confirmation/aGE5OTk5OWtvdUBnbWFpbC5jb206MjY1NTE=
このトークン「aGE5OTk5OWtvdUBnbWFpbC5jb206MjY1NTE=」はbase64で
エンコードされた「ha99999kou@gmail.com:26551」で。
問題は、有効なトークンが簡単に生成できることで。
トークンが弱すぎ。
このトークンは、base64 でエンコードされた ((email:5 桁のランダムな数値) ) を
生成できて。
低帯域幅でも 15 分でブルートフォース クラック 5 桁ブレークを使用できて。
電子メールリンクに移動せずに。
PS:
たくさんのアカウントを作成しましたが、乱数は常に5桁で。
この機能を中断してみることに (確認メール):
最初にha99999kou@gmail.com:12345で間違ったトークンを作成し、
base64でエンコードすると次のようになり。
「aGE5OTk5OWtvdUBnbWFpbC5jb206MTIzNDU=」
このリンクをブラウザで開いてみると。
https://www.bukalapak.com/confirmation/aGE5OTk5OWtvdUBnbWFpbC5jb206MTIzNDU=
トークンが無効であるというメッセージが表示され。
Ajax リクエストでトークンと他の access_token を
https://api.bukalapak.com に送信し、応答としてエラー メッセージを受け取り。
Burp リピータで有効なトークンと無効なトークンを比較してみると。
1.ステータス コード 200 を持つ有効なトークン
2.ステータス コード 400 の無効なトークン
次に、この Ajax リクエストを傍受し、Burp イントルーダの 5 桁を
ブルート フォースで実行して。
ルール:
プレフィックス メールと bse64 エンコードを使用
新しいアカウント ha999999 Kou@gmail.com を確認して。
Best regards, (^^ゞ