Shikata Ga Nai

Private? There is no such things.

Mass Assignment leads to the victim’s account being inaccessible foreverを訳してみた

Hello there, ('ω')ノ

 

一括割り当てにより、被害者のアカウントは永久にアクセスできなくなるを。

 

脆弱性:

 一括割り当て

 ロジックの欠陥

 

記事:

 https://infosecwriteups.com/mass-assignment-leads-to-the-victims-account-being-inaccessible-forever-52e48c6a8a4d

 

一括割り当ての脆弱性とは、Web アプリケーションで発生する可能性のある

セキュリティ上の脆弱性の一種で。

一方、Web アプリケーションでは、入力を適切にフィルタリングしたり

検証したりせずに、ユーザが 1 回のリクエストでオブジェクトを複数回変更でき。

 

この脆弱性は、開発者が一部の Web フレームワークの機能を使用して、

受信データをオブジェクトのプロパティに自動的にマップすることが

よくあるために発生し。

攻撃者は、追加のプロパティを含む特別に作成した入力を送信したり、

変更を意図していない既存のプロパティを変更したりすることで、

この機能を悪用する可能性があり。

これにより、ユーザ アカウント情報、支払い情報、その他の機密情報を

含む機密データへのアクセスや変更が許可される場合があって。

 

たとえば、Web アプリケーションでユーザが名前、電子メール アドレス、

パスワードなどのプロファイル情報を更新できるとし。

開発者が入力を適切に準備または検証しない場合、攻撃者は

「isAdmin=true」などの追加パラメータを含むリクエストを送信し、

アプリケーションへの管理アクセスを与える可能性があって。


再現する手順:

サブドメインの列挙をスキップし。

通常のユーザとして登録されている Web サイトにアクセスし、数分後に

Web サイトにはユーザのデータを更新するための

2 つのエンドポイントがあることがわかり。

そのうちの 1 つは、更新にパスワードが必要な電子メール アドレス用のもので、

もう 1 つは、更新にパスワードを必要としない姓名のみのもので。

 

 

 

メールを既存のメールに更新しようとしましたが、残念ながらエラーが発生して。

 

 

少し考え方を変え、編集部分を開いて姓と名を更新し、

Burp で更新リクエストをキャプチャして。

 

 

悪用できる興味深いパラメータを探していましたが、

応答はリダイレクト ページであり、応答内の隠しパラメータが公開されておらず。

isAdmin などのいくつかの興味深いパラメータを追加しようとし。

本文に Email パラメータを追加して新しいメールを設定すると、

驚いたことにメールが新しいメールに更新されて。

 

 

しかし、これまでのところこの脆弱性の影響は情報/P5 であり、

これを影響のあるものにエスカレーションする必要があり。

そして、既存の被害者のメールを設定して転送すると成功して。

 

自分のメールアドレスは被害者のメールアドレスに変更され。

被害者のアカウントを確認してみると。

被害者側では、有効な資格情報を使用してログインしようとしましたが、

エラーが表示され。

「パスワードを忘れましたか?」ではなく、同じエラーが表示されて。

 


どうしたかというと、2つのアカウントに同じメールアドレスを設定し。

また、関数がデータベースに電子メールを要求すると、

データベースは何も返さないか、2 つのアカウントを返して。

これは、関数が正しく動作しないことを意味して。

これで、被害者のアカウントは永久にアクセスできなくなって。

 

Best regards, (^^ゞ