web-dev-qa-db-ja.com

404ページエコー要求URI-セキュリティリスク?

ホスティングアカウントの1つのデフォルト404ページに、要求されたURIが表示されていることに気付きました。

<!--#echo var="REQUEST_URI" -->

これはある種の潜在的な脆弱性であると聞いたり読んだりしたことをかすかに覚えています。ただし、ホスティングプロバイダーがこれをデフォルトの404ページに含めるとは考えにくいです。それで、これは脆弱性ですか?

5
BenV

失敗したURIをエコーすると、URLが作成され、JavaScriptがサイトに挿入されて実行されるため、XSS攻撃が有効になる場合があります(サイトによって異なります)。そのため、この注入されたJavaScriptはユーザーのCookieにアクセスでき、ユーザーのCookieがログインしている場合は、システムの個人情報を取得するために使用できます。

URIがサニタイズされている限り(たとえば、<または>を含めることはできません)、これで問題ありません。

次のURIでこれをテストできます。

/doesnotexist/"--><script language="javascript">alert("hello world")</script>

動作するには調整が必要な場合があります(can動作させると仮定)

6
Kris

ただし、ホスティングプロバイダーがデフォルトの404ページにこれを含めると信じられない

よくわからない-パッチを当てられていない脆弱性のためにハッキングされた非常に評判の良いホスト(または私が思った)で、ホスト上のすべてのサイトがハッカーによって削除された。彼らの応答-最後のバックアップ(72時間前)にロールバックし、誰も気付かないことを望みます。

とはいえ、過去に404 XSS攻撃があったが、それらは通常、システム全体ではなく、1つのソフトウェアにのみ影響します。ただし、URIを含めると、このような攻撃にどのように影響するかわかりません。

私が考えることができるのは、あなたのウェブホストが本当に貧弱で、/gimma404.html?'); DELETE * FROM Users; --をリクエストし、RequestURIがデータベースにログインしてエスケープされていない場合ですインジェクション攻撃。

1
Mark Henderson

REQUEST_URIがHTMLエンコードされている限り、表示するリスクはまったくありません。

実際には、ユーザーが入力した内容を正確に確認できるように、404ページが元の要求URLを表示するようにリダイレクトするのが一般的に良い習慣です。これは、明らかにタイプミスを犯したかどうかを確認するのに役立ちます。これが多くのデフォルト404ページがこれを表示する理由です-ユーザーを支援します。

1
Dan Diplo

あなたが人々に見られたくない情報はセキュリティリスクです。私のアドバイスは、デフォルトの404を決して使用しないことです。見た目が悪く、機能がほとんどないだけでなく、あなたが尋ねているようにセキュリティ上の懸念を引き起こす可能性があります。

このサイトをご覧ください- http://www.smashingmagazine.com/2007/08/17/404-error-pages-reloaded/ 404で何ができるかについてのアイデアをご覧ください。

0
Toby