web-dev-qa-db-ja.com

HTMLの脆弱性

私の質問は3つあります。

バックグラウンド

いくつかの穴のあるWebサイトで脆弱性スキャンを実行するように求められました(私はそう思います)。特定のページで、テキストフィールドをエスケープしてサイトに書き込むことができました。サイトを離れた場合、入力したテキストは左です。

ご質問

1)(私が他のパーサーの前に実行を学習した)HTMLパーサーに受け入れられる前に入力を検証する限り、テキストフィールドを保護することをどのように推奨できますか?

2)テキストが非永続的であるという事実は関連していますか?そこにスクリプトタグを置くことはできますが、実行されているようです。

3)これは、本当に答えられると期待できるかどうかわかりません。しかし、私はこの「穴」で何ができるかについての想像力に欠けています。スクリプトを実行できれば、何かを実行できるはずですが、Javaスクリプトを十分に理解しているとは思いません。何ができるか(実際にはコードを探していません。) 。必然的に...)これで?

3
Jeff

1)テキストフィールドをセキュリティで保護することを推奨するにはどうすればよいですか(HTMLパーサーに受け入れられる前に入力を検証する限り(他のパーサーの前に実行を確認しました))。

クロスサイトスクリプティング(XSS)を防ぐ方法については、 https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet を参照してください。許可された文字のみが送信されることを確認するためにサーバーでデータ検証を行う必要があり、データを返す前に出力エンコーディング(たとえば、HTMLエンティティエンコーディングの可能性が高いですが、詳細については前のリンクを参照)を行う必要があります。ブラウザ。

2)テキストが非永続的であるという事実は関連していますか?そこにスクリプトタグを置くことはできますが、実行されているようです。

「反映された」XSSおよび「DOMベースの」XSSは、「永続的な」XSSほど危険であるとは考えられていませんが、サイトの人気、攻撃者によるフィッシング/トリックの効果などは大きな影響を与えます反映されたXSS攻撃が本当にどれほど深刻であるかについて。

3)これは、本当に答えられると期待できるかどうかわかりません。しかし、私はこの「穴」で何ができるのか想像力に欠けています。スクリプトを実行できれば、何かを実行できるはずですが、Javaスクリプトを十分に理解していないと思います。何ができるか(実際にはコードを探していません。) 。必然的に...)これで?

キーストロークの盗用、セッションの乗っ取り、ユーザーによるマルウェアのインストール、サイトのルックアンドフィールの変更、見た目は同じであるが実際は攻撃サイトであるサイトへのリダイレクトなど http://www.zdnet。 com/blog/security/obama-site-hacked-redirected-to-hillary-clinton/1042 簡単な実世界の例について。

6
Jon Jon

私はあなたの質問に答えようとします。それで、私があなたの質問を正しく理解すれば、HTMLとJavascriptを挿入することができますが、それはあなただけにアクセス可能ですか?これが事実である場合、GET変数、子フレーム、親フレーム、ローカルストレージ、または悪意のある可能性がある他の場所からのデータがそれ自体または他のJavaScriptを開いているページに挿入する可能性があるため、問題が発生する可能性があります。それにより、潜在的にあなたにより多くのダメージを与えます。これはおそらく、クリックジャッキング、ドライブバイダウンロードなどの可能性があります...

この脆弱性を修正するための推奨事項に関しては、おそらくonchangeイベントまたはonblurイベントでのJavaScript検証が必ず必要になるため、少し難しいです。ただし、Javascriptは簡単に無効化または変更できるため、セキュリティ関連のJavascriptに依存することはできません。

2
ralfe