0

1. tomcat 2. spring jersey 統合の使用

パス内の uri フラグメントの 1 つに「/」が含まれており、%2f に置き換えて正しくエスケープします。ただし、リクエストがリクエスト プロセッサに正しく到達することはありません。

URIの例

/persons/bad_person_identifier%2fabcd

個人の一意の識別子は「bad_person_identifier/abcd」の可能性があります

4

2 に答える 2

1

tomcat 6.x の問題であることが判明しました

解決策: tmcat org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH: true を開始するためのシステム プロパティを設定します。

問題の詳細:

Apache Tomcat 6.0.10 で修正済み

重要: ディレクトリ トラバーサル CVE-2007-0450

Tomcat では、パス区切り文字として「\」、「%2F」、および「%5C」を使用できます。一部のコンテキストのみをプロキシするように構成されたプロキシ (mod_proxy および mod_jk を備えた Apache HTTP サーバーを含むが、これに限定されない) の背後で Tomcat が使用される場合、「/../」のような文字列を含む HTTP 要求により、攻撃者がコンテキストを回避できる可能性があります。プロキシの制限を解除し、プロキシされていないコンテキストにアクセスします。

次の Java システム プロパティが Tomcat に追加され、URL のパス区切り文字の処理をさらに制御できるようになりました (両方のオプションのデフォルトは false)。

org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH: true|false org.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH: true|false すべての URL がプロキシにあるため、Tomcat によって処理されることを保証できないためコンテキストアクセスを制限するプロキシが使用されていないかのように、Tomcat は常に保護されている必要があります。

影響: 6.0.0-6.0.9

于 2013-09-24T14:48:16.453 に答える