1

OWASP PAGEやオープンリダイレクトに関するGoogleブログの記事など、このトピックに関する記事の多くを読みました...オープンリダイレクト
に関するこの質問もスタックオーバーフローで見つけましたが、それは別のものです

リダイレクトしてはいけない理由はわかっています...これは私にとって完全に理にかなっています。

しかし、私が本当に理解していないのは、リダイレクトとこれを通常の<a hrefリンクに入れることの正確な違いはどこですか?
一部のユーザーはステータス バーを見ているかもしれませんが、ほとんどのユーザーは、リンクをクリックするときに、実際にはステータス バーを見ていないと思います。
これは本当に唯一の理由ですか?彼らが書いたこの記事のように:

<a href="http://bank.example.com/redirect?url=http://attacker.example.net">Click here to log in</a>

URL が信頼できる銀行 bank.example.com で始まるため、ユーザーはリンクが安全であると想定する可能性があります。ただし、ユーザーは攻撃者の Web サイト (attacker.example.net) にリダイレクトされます。その後、ユーザーは無意識のうちに攻撃者の Web ページに資格情報を入力し、銀行口座を危険にさらす可能性があります。Java サーブレットは、リダイレクト アドレスが信頼できるサイトであることを確認せずに、ユーザーを URL にリダイレクトしてはなりません。

したがって、ユーザーが自分のホームページへのリンクを配置できるゲストブックのようなものがある場合、唯一の違いはリンクがリダイレクトされないことですが、それでも悪意のある Web ページに移動します。

私はこの問題を正しく見ていますか?

4

2 に答える 2

2

私の理解では、リダイレクトが問題であるということではありません。ここでの主な問題は、絶対URLを含むリダイレクト(ターゲットがユーザーによって制御される可能性がある場合)を許可することです。

URLが絶対的である(開始することを意味するhttp://host/etc)という事実は、意図せずにクロスドメインリダイレクトを許可していることを意味します。これは、JavaScriptを反映してクロスドメイン呼び出しを行う(そしてドメインの情報を漏らす)ことができる従来のXSSの脆弱性と非常によく似ています。

したがって、私が理解しているように、これらの種類の問題のほとんどを修正する方法は、(サーバー上の)リダイレクトがルートに対して行われるようにすることです。その場合、ユーザー制御のクエリ文字列値を別の場所に移動する方法はありません。

それはあなたの質問に答えますか、それとも単にもっと作成しますか?

于 2012-03-11T00:35:50.083 に答える
2

主な問題は、実際には被害者が信頼する Web サイトへの URL であるため、攻撃者がその URL を信頼できるように見せかける可能性があることです。e. bank.example.com .

リダイレクト ターゲットは、例のように明確である必要はありません。実際には、攻撃者はさらに別の手法を使用して、必要に応じてユーザーと Web アプリケーションの両方をだまし、特別なエンコーディング、パラメーター汚染、および正当な URL を偽装するその他の手法を使用する可能性があります。

そのため、被害者がセキュリティ意識が高く、リンクをクリックしたりリソースを要求したりする前に URL をチェックしたとしても、その URL が信頼できる Web サイトbank.example.comを指していることだけを確認できます。そして、それだけで十分な場合が多すぎます。

于 2012-03-11T07:29:37.417 に答える