XSS攻撃に関する知識を更新するために、WebGoatの演習を行っています。
具体的には、ステージ1のXSS演習を行っています。この演習には、意図的に入力をサニタイズしない形式があります。ソリューションのビデオでは、JavaScriptアラート機能を使用してメッセージとセッションCookieを送信しています。
ステージ3にはXSSコードスニペットが組み込まれており、プロファイルを表示すると「document.cookie」のコンテンツが表示されます。
最近のブラウザでは、アドオンがないため、これを実行できません。 JavaScriptアラートを使用してメッセージを生成できますが、document.cookieの内容を印刷しません
Get-cookieの this ページのチュートリアルは、JavaScriptアラートメッセージでdocument.cookieの内容を印刷できることを示しています。
私が知りたいのは、XSS Webアプリケーションに対して意図的に脆弱な非常に単純なもので同じことができない理由です。すべての最新のブラウザーでこれを防ぐXSS検出はありますか? IE、Firefox、およびChromeでWebセキュリティを無効にするオプションを試してみましたが、違いはありません。
編集:私がWebGoat 5.4とWebGoat 6.0.1の両方で試したこと:
WebGoatは、もはや脅威ではなくなったXSS攻撃について教えようとしていますか?
2番目の編集:
マーティンの答えに従って、以下のスクリーンショットにあるように、ヘッダーを手動で設定してみました。レッスンのタイトルを変更して、フィドラーがページを正しくインターセプトしていることを確認しました。
Cookieは、secure3またはhttponlyとして設定されていませんが、ブックマークレットまたはスクラッチパッドを介して、JavaScriptを介してブラウザーから読み取られることを拒否します。 Cookieはブラウザーで正しく設定され、ブラウザーのCookieダイアログで表示できます。
このCookieのどのプロパティが読み取られないのですか?
X-XSS-Protection:ヘッダーを設定するのが正しい解決策ですが、このヘッダーは、リクエストではなくresponseに追加する必要があります。手順:
Update:明確にするためのスクリーンショット。
*:
正解です。主流のブラウザーの大部分には、組み込みのXSS保護が組み込まれています。可能な回避策に関して:
Chrome=でこの機能を無効にするには、「disable-xss-auditor」スイッチを使用してブラウザを起動します(つまり、C:\<PATH>\chrome.exe --args --disable-xss-auditor
)
別のオプションは、ホスティングWebサーバーにヘッダーを設定して、そのような保護を無効にすることです(以下のApacheの例)。
ヘッダーセットX-XSS-Protection:0
最後に、OWASP MantraなどのWebアプリケーションペンテストブラウザを利用することもできます。
https://www.owasp.org/index.php/OWASP_Mantra_-_Security_Framework
Cookieのコンテンツを印刷するために使用したXSSペイロードについて言及してもらえますか?
また、一般的に言えば、X-XSSヘッダーに加えて、WebアプリケーションでcookieフラグがHTTPのみに設定されている場合、cookieのコンテンツは、 JavaScriptスニペットまたはXSSペイロード。これにより、上で投稿したスクリーンショットのような空の警告メッセージが出力されます。