Hello there, ('ω')ノ
一括割り当てにより、被害者のアカウントは永久にアクセスできなくなるを。
脆弱性:
一括割り当て
ロジックの欠陥
記事:
一括割り当ての脆弱性とは、Web アプリケーションで発生する可能性のある
セキュリティ上の脆弱性の一種で。
一方、Web アプリケーションでは、入力を適切にフィルタリングしたり
検証したりせずに、ユーザが 1 回のリクエストでオブジェクトを複数回変更でき。
この脆弱性は、開発者が一部の Web フレームワークの機能を使用して、
受信データをオブジェクトのプロパティに自動的にマップすることが
よくあるために発生し。
攻撃者は、追加のプロパティを含む特別に作成した入力を送信したり、
変更を意図していない既存のプロパティを変更したりすることで、
この機能を悪用する可能性があり。
これにより、ユーザ アカウント情報、支払い情報、その他の機密情報を
含む機密データへのアクセスや変更が許可される場合があって。
たとえば、Web アプリケーションでユーザが名前、電子メール アドレス、
パスワードなどのプロファイル情報を更新できるとし。
開発者が入力を適切に準備または検証しない場合、攻撃者は
「isAdmin=true」などの追加パラメータを含むリクエストを送信し、
アプリケーションへの管理アクセスを与える可能性があって。
再現する手順:
サブドメインの列挙をスキップし。
通常のユーザとして登録されている Web サイトにアクセスし、数分後に
Web サイトにはユーザのデータを更新するための
2 つのエンドポイントがあることがわかり。
そのうちの 1 つは、更新にパスワードが必要な電子メール アドレス用のもので、
もう 1 つは、更新にパスワードを必要としない姓名のみのもので。
メールを既存のメールに更新しようとしましたが、残念ながらエラーが発生して。
少し考え方を変え、編集部分を開いて姓と名を更新し、
Burp で更新リクエストをキャプチャして。
悪用できる興味深いパラメータを探していましたが、
応答はリダイレクト ページであり、応答内の隠しパラメータが公開されておらず。
isAdmin などのいくつかの興味深いパラメータを追加しようとし。
本文に Email パラメータを追加して新しいメールを設定すると、
驚いたことにメールが新しいメールに更新されて。
しかし、これまでのところこの脆弱性の影響は情報/P5 であり、
これを影響のあるものにエスカレーションする必要があり。
そして、既存の被害者のメールを設定して転送すると成功して。
自分のメールアドレスは被害者のメールアドレスに変更され。
被害者のアカウントを確認してみると。
被害者側では、有効な資格情報を使用してログインしようとしましたが、
エラーが表示され。
「パスワードを忘れましたか?」ではなく、同じエラーが表示されて。
どうしたかというと、2つのアカウントに同じメールアドレスを設定し。
また、関数がデータベースに電子メールを要求すると、
データベースは何も返さないか、2 つのアカウントを返して。
これは、関数が正しく動作しないことを意味して。
これで、被害者のアカウントは永久にアクセスできなくなって。
Best regards, (^^ゞ