Hello there, ('ω')ノ
事前アカウント乗っ取りにつながる一括割り当てを。
脆弱性:
質量割り当て
記事:
https://medium.com/@cyberali/mass-assignment-leading-to-pre-account-takeover-13041280a0d9
アプリケーション プログラマブル インターフェイスとも呼ばれる API は。
最新の自動車 (スマート)、モバイル、Web、IOT デバイスなど。
あらゆる場所で使用されていて。
これらは、今日のアプリケーションのビルディング ブロックで。
web2.0 から web3.0 に移行すると、どこにでもあり。
通信を容易にすることで、コンピューティング機能が互いのリソースを。
利用できるようにして。
言語も国も異なる 2 人が同じ理解を得るためには。
同じレベルに到達する必要があるため。
この 2 人の翻訳を支援する第三者を招待して。
API が使用される理由について、基本的な考え方があり。
セキュリティの観点から、プライベート プログラムに関する興味深い発見の 1 つを。
共有したいと思い。
ターゲット ドメインにいくつかの興味深い脆弱性を発見しましたが。
当時は API テストを開始したばかりで、API レベルの脆弱性を悪用して。
学習内容を評価しようとしていて。
VAmpI Lab で学んだ API OWASP トップ 10 に焦点を当てることに。
https://github.com/erev0s/VAmPI
ターゲットは開発中で、範囲は限られていて。
スコープ内にいる間にスコープを壊すと思い。
以下のスクリーン ショットに表示されている次の機能が制限されて。
メール編集
プロフィール写真
名前フィールド
のみを変更できて。
下記は、対象者のプロフィール情報で。
このエンドポイントで他に何ができるかを考えて。
OWASP のトップ 10 を確認していると、Mass Assignment で行き詰まり。
一括割り当て:
この脆弱性では、開発者は、通常のユーザがリクエスト ポストの本文を操作し。
is_Admin、email、new_password などの機密パラメータを追加できるように。
「open window」を残していて。
パラメータとその値の推測は少し難しいもので。
パラメータが推測されると、エクスプロイトは簡単で興味深いものになり。
これは、オブジェクトのプロパティの推測とエンドポイントのオプションの調査が。
関係する一括割り当てとして知られているもので。
ターゲット Web アプリケーションでは、攻撃者は、他のユーザに気付かれずに。
簡単に登録および検証でき。
プロファイル レコードを変更する場合、ターゲットの電子メール アカウントを。
変更するオプションはなく。
攻撃者は大量の割り当てがあるため。
カスタム キー値「email」:「victims_email」を簡単に挿入して。
被害者のアカウントに登録でき。
被害者の電子メールを挿入した後、攻撃者は自分の電子メールを確認することもでき。
アカウントの確認をクリックするだけで。
攻撃者は確認リンクが記載された電子メールを受信し、それをクリックすると。
アカウントが確認され。
ここでログアウトし、ログインできない攻撃者の資格情報で再度ログインして。
新しいメールアドレス(被害者)でメールアドレスを変更してログインして。
Mass Assignment Vulnerability がどのように機能するかについて。
明確な概念があるので、今度はこの脆弱性を悪用するためにたどった手順に。
再現する手順:
1.ターゲット ドメインでアカウントを作成して。
2.[プロファイル オプションの編集] に移動し、機能を大幅にフィルタリングして。
どのオプションが編集可能で、どのオプションが制限されているかなどで。
自分の場合、メールオプションの変更は編集できず。
3.名前フィールドを変更し、Burp Suiteプロキシ インターセプトをオンにして。
4.送信ボタンをクリックして、Burp Suiteでリクエストをキャプチャして。
5.プロキシタブで、右クリックしてリクエストをリピータに送信し。
リクエスト本文に「email」という名前のパラメーターを追加し。
送信をクリックして。
下記は、Burp Suiteで取得されたリクエストで。
6.リクエストは正常に完了し、攻撃者は自分のアカウントで確認リンクを受け取り。
つまり、電子メールを変更するかどうかを確認して。
攻撃者がリンクを確認すると、被害者の電子メールが。
攻撃者のアカウントに追加されて。
下記が、攻撃者が受け取る確認リンクで。
最後に、利用可能な機能に固執しないで。
既成概念にとらわれず、アプリケーションが異常な動作をするようにして。
通常の動作は別のものであり。
システムには明らかに存在しない別の機能のバグを閉じて。
Best regards, (^^ゞ