web-dev-qa-db-ja.com

リフレクトクロスサイトスクリプティングの危険性は何ですか?

リフレクトクロスサイトスクリプティングの危険性は何ですか?

リフレクトされたXSSは危険である可能性があるので理解しています。しかし、Reflected XSSを使用してどのような実際的な攻撃を実行できますか?

18
Lucas Kauffman

ページにコードを挿入できると、多くのことができます。たとえば、

  1. 非HTTPOnly Cookieの資格情報を盗みます。
  2. ユーザーの資格情報を使用してサーバーにリクエストを送信します。 XSRFを考える
  3. jS変数に格納されている秘密を盗みます。
  4. フォームを送信して、コンテンツをダウンロードするようユーザーに促します
  5. サイトの所有者からのものと思われるテキストを表示します。フィッシングだと思う。
  6. パスワード入力を表示し、キーストロークをログに記録し、その結果を選択したサイトに送信する
  7. 別のサイトにリダイレクトする
  8. ユーザーがサイトへのデバイスへのアクセスを許可した場合、GPS /カメラデータを取得する
12
Mike Samuel

ウィキペディアの記事 はそれを大きな正義にしています:

非永続的な(または反映された)クロスサイトスクリプティングの脆弱性は、最も一般的なタイプです。これらの穴は、Webクライアントによって提供されたデータ(最も一般的にはHTTPクエリパラメーターまたはHTMLフォームの送信)がサーバー側スクリプトによって直ちに使用され、要求を適切にサニタイズせずにそのユーザーの結果のページを生成するときに表示されます。

HTMLドキュメントは、制御ステートメント、フォーマット、および実際のコンテンツが混在するフラットなシリアル構造を持っているため、適切なHTMLエンコーディングなしで結果のページに含まれる検証されていないユーザー提供データは、マークアップインジェクションにつながる可能性があります。潜在的なベクトルの典型的な例は、サイト検索エンジンです。文字列を検索すると、通常、検索文字列が結果ページにそのまま表示され、何が検索されたかを示します。この応答がHTML制御文字を適切にエスケープまたは拒否しない場合、クロスサイトスクリプティングの欠陥が発生します。

反映された攻撃は、通常、電子メールまたは中立的なWebサイトを介して配信されます。餌は無害に見えるURLで、信頼できるサイトを指していますが、XSSベクトルが含まれています。信頼できるサイトがベクターに対して脆弱である場合、リンクをクリックすると、被害者のブラウザーが挿入されたスクリプトを実行する可能性があります。

...

非永続的(別名反射)

  1. アリスは、ボブがホストする特定のWebサイトによくアクセスします。 BobのWebサイトでは、Aliceがユーザー名とパスワードのペアでログインし、請求情報などの機密データを保存できます。
  2. マロリーは、ボブのウェブサイトに反映されたXSS脆弱性が含まれていることを観察しました。
  3. マロリーはこの脆弱性を悪用するURLを作成し、アリスに電子メールを送信して、偽のふりをしてURLのリンクをクリックするように彼女に誘導します。このURLはボブのWebサイトを(直接またはiframeまたはajaxを介して)指しますが、Malloryの悪意のあるコードが含まれており、これがWebサイトに反映されます。
  4. アリスは、ボブのWebサイトにログインしているときに、マロリーから提供されたURLにアクセスします。
  5. URLに埋め込まれた悪意のあるスクリプトは、まるでボブのサーバーから直接来たかのように、アリスのブラウザーで実行されます(これは実際のXSSの脆弱性です)。スクリプトを使用して、アリスのセッションCookieをマロリーに送信できます。その後、マロリーはセッションCookieを使用して、アリスが知らないうちにアリスが利用できる機密情報(認証資格情報、請求情報など)を盗みます。

それについて質問がありますか?

標準のXSS防御はそれに対して機能します。たとえば、信頼できないユーザー入力をサニタイズします。たとえば、HTMLの小さなサブセット(安全な制限付きマークアップ言語から)を挿入するか、適切なhtmlサニタイザー/ピューリファイヤーを通過させるだけでよく、スクリプトで安全でないパターン(たとえば、ユーザー入力のJavaScriptでのeval)を使用しないでください。 [〜#〜] csp [〜#〜] およびサンドボックスなどを備えたブラウザ.

10
dr jimbob

From [〜#〜] owasp [〜#〜]

反映されたXSS攻撃:反映された攻撃とは、エラーメッセージ、検索結果、またはリクエストの一部としてサーバーに送信された入力の一部またはすべてを含むその他の応答など、挿入されたコードがWebサーバーに反映される攻撃です。反映された攻撃は、電子メールメッセージや他のWebサーバーなどの別のルートを介して被害者に配信されます。ユーザーがだまされて悪意のあるリンクをクリックしたり、特別に細工されたフォームを送信したりすると、挿入されたコードは脆弱なWebサーバーに移動し、攻撃がユーザーのブラウザーに反映されます。 「信頼された」サーバーからのコードであるため、ブラウザはコードを実行します。

つまり、悪意のあるコードをクエリパラメータの一部(アンパサンドまたは疑問符の後のURLの一部)として配置できます。悪意のある電子メールを送信したり、bit.lyなどを使用したり、他の攻撃と組み合わせたりして、 XSSのフィルタリングではない、意図しない要求を行う。

攻撃に関しては、フィッシングが大きな攻撃になるだろう。誰かに私の邪悪なリンクを信頼させる。このタイプの攻撃は、CSRFまたはいくつかの攻撃のいずれかと組み合わせることができます。攻撃者はいつでも別のサイトにコードを実行させ、JavaScriptを有効にしてページを実行することはできません。

いくつかのリンク

4
Eric G

BeEF-Browser Exploitation Framework http://beefproject.com/ をご覧になることをお勧めします。これは基本的にXSSの危険性を示すためのツールです。反射または永続的なXSS攻撃を使用することにより、ビーフは特定のWebサイトにフックし、攻撃者が特定のページのブラウザを制御できるようにします。 BeEFはMetasploitと統合されています。これにより、攻撃者はブラウザーのエクスプロイトなどをユーザーのブラウザーに送信できます。あなたはデータを盗んだり、セッションを盗んだりすることができます。そこにもいくつかのまともなビデオがあります。

BeEFが実行できることは何でも、攻撃者も実行できます。 XSSはかなり悪い場合があります。

3
Erlend