5

Acunetixを使用して、アプリケーションのセキュリティスキャンを実行します。最近、以下の整数の脆弱性エラーに遭遇しました。

整数の脆弱性

私の知る限り、レポートはクエリ文字列内の整数オーバーフロー攻撃を阻止していないことを示しているようです。最終的に整数に解決されるクエリ文字列を使用しますが、使用する前に、最初に暗号化され、次に復号化され、intを使用してintに変換されConvert.ToInt32()ます。代わりに使用する必要があることはわかっていますTryParse()が、ハッカーがmaxより大きい整数値を入力したとしても、整数に変換しようとする前に復号化しようとすると失敗します。これは、私の意見では整数オーバーフローが発生する場所です。それは、復号化が失敗したときにエラーが発生しない限りですか?

私はこれについてかなり混乱していて、Google検索はc#やasp.netではなくc++のような管理されていない言語にほとんど関係しているのであまり役に立ちませんでした。どんな助けでも大歓迎です。

4

1 に答える 1

3

これは整数オーバーフローの脆弱性ではないと思います。これはクエリ文字列で操作されたタイプであるため、整数を参照していると思われます(暗号化されているとおっしゃっていましたが)。信頼できないユーザー入力を整数に直接変換し、最初に型を検証しない場合(たとえば、最初にTryParseを実行する場合)、おそらく内部エラー(try / catchがない)をスローします。これは彼らがおそらく取り上げているものです。

自動化されたスキャナーは、HTTP500エラーを少し上回ります。彼らは、実際に何が起こっているのか、そしてエラーがどれほど深刻なのかを知らないので、それが誤検知であると主張することができます。一方、セキュリティ担当者は、クエリ文字列の操作の結果としてこれらのエラーが定期的にスローされていることをボットが検出した場合、HTTP500をすぐに返すWebサイトがさらに調査される可能性が高いと主張します。

簡単な答え:「すべての入力は、許容可能な値の範囲のホワイトリストに対して検証する必要があります。」ここから)。

于 2011-07-29T21:41:32.037 に答える