CSRF 脆弱性テスト

クロスサイトリクエストフォージェリ(CSRF)攻撃は、オープンページでユーザセッションを管理するために、Webブラウザの一般的に受け入れられているロジックを悪用します。 標準では、ユーザーは現在使用している Web アプリケーションで 1 つのアクティブなセッションしか持てないためです。 ブラウザで新しく開いたタブは、すでにログインしているユーザーのクッキーを自動的に使用します。 攻撃者は、被害者がアクティブなセッションを持つページで、どのアクションがトリガされるか (パスワードの変更など) をクリックした後、被害者に特別に準備されたリンクを送信することで、この事実を最も頻繁に使用します。


この種の攻撃に対する保護は、多くの場合、 セッションごとに 特別なユニークで予測不可能なパラメータを追加することで、機密要求(パスワードの変更、新しいユーザーの追加など)に変数として接着され、その正確性はサーバーによって検証されます。 このトークンの値を知らない攻撃者は、 反 CSRF トークンの非準拠のためにサーバーが拒否しない要求を生成できません。


テストしたアプリケーションの 1 つで、多くの CSRF 攻撃を実行する可能性を発見しました。 1 つの例として、ログインユーザーがユーザーに代わってパスワード変更要求を行う特別な細工がされたページを準備します。 このページのコードと、新しいパスワードの入力を担当するパラメーターを次に示します。 次の印刷出力で選択した行は、新しいパスワードが定義されている入力フォーム フィールドを定義するコードを示しています。


csrf poc パスワード変更要求

代替ページに入ったユーザーからのセッションを使用する自動送信要求は、次のようになります。


ホスト: XXXXX
ユーザーエージェント: Mozilla/5.0 (X11;Linux x86_64;rv:45.0) ヤモリ/20100101 Firefox/45.0
[..

コンテンツ処分-----------------------------70124987214088125821572825923: フォームデータ; 名前="newpassword"
csrf
[.]



応答として、アプリケーションは、次のスクリーンショットに示されているパスワードの変更を確認します。


アプリは、パスワードの変更を確認します

Chcesz wiedzieć więcej?

Zapisz się i bądź informowany o nowych postach (zero spamu!). Dodatkowo otrzymasz, moją prywatną listę 15 najbardziej przydatnych narzędzi (wraz z krótkim opisem), których używam przy testach penetracyjnych.

Nigdy nie podam, nie wymienię ani nie sprzedam Twojego adresu e-mail. W każdej chwili możesz zrezygnować z subskrypcji.

ブックマーク パーマリンク.

この記事についてのあなたの意見を教えてください.