web-dev-qa-db-ja.com

CSRFおよびFlash / Flex

FlashおよびFlexクライアントは、NetConnectionおよびAMFプロトコルを使用してサーバーにRPC呼び出しを行うことができます。 Cookieに基づいて認証するようにこれらのRPC呼び出しを設定することは珍しいことではありません。

このプロトコル(またはBlazeDS、GraniteDSなどの特定のサーバーサイズの実装)がクロスサイトリクエストフォージェリの脆弱性に対処するかどうかについて、相反する意見を聞いたことがあります。ここに特別な機能がなければ、ユーザーのセッションCookieをハイジャックするRPC呼び出しを実行するフォームポストリクエストが偽造される可能性があります。

ここに脆弱性が存在するかどうかを誰かが確認または拒否できますか?

4
Marplesoft

FlashアプレットはCSRFエクスプロイトに使用できますが、同じオリジンポリシーまたはXML-RPCなどに依存しています。

Htmlボディのxmlボディを含むXML-RPCリクエストを送信する場合は、次のようなフォームを使用する必要があります。

<form name="x" enctype="text/plain" action="" method="post">
<input type="hidden" name='<?xml version'value='"1.1"?><a><b>blah blah</b></a>'>
</form>
<script>document.x.submit();</script>

(ただし、Webアプリケーションまたはサーバーがcontent-typeをチェックした場合、機能しません。)

と同じ起源のポリシーの場合:

PluploadのCSRF(CVE-2012-3415)

PluploadアプレットはSecurity.allowDomain( '*')と呼ばれ、任意のドメインからアプレットを使用できるようにします(たとえば、S3から提供される可能性があります)。つまり、人々は、ページに埋め込んでJavaScriptを使用することにより、インターネット上の他のサイトからPluploadアプレットを操作できるようになりました。ただし、同じオリジンポリシーがFlashで機能するため、アプレットはホストされているドメインにリクエストを戻すことができます。さらに、人々はJavaScriptを介してアップロード要求の完全なURLを指定でき、その要求の結果(つまり、結果のページのHTML)はJavaScriptを介して埋め込みページに返されます。

したがって、攻撃者が(アップロードする単一のファイルを選択することにより)アプレットと対話するようにターゲットを誘導した場合、攻撃者はアプレットがホストされているドメインにリクエストを送信し、完全な応答を読み取ることができます。これにより、CSRFトークンやその他の機密情報が開示される可能性があります。この問題は、Pluploadアプレットがデフォルトでwp-includesディレクトリ内でホストされているWordpressインストールで特に重要でした。

この問題は、デフォルトでSecurity.allowDomain( '*')の呼び出しを削除することで解決しました。

さらに、FlashアプレットにもXSSの脆弱性が存在する可能性があります。 詳細とリファレンスを参照

2
Sajjad Pourali