web-dev-qa-db-ja.com

ip-fragmentationとmod_security?

modsecurityを回避するために(たとえばfragrouteで)ip-fragmentationを使用することは可能ですか?

考えは、sql-injection-またはxss-stringを小さな断片に分割して、認識されないようにすることです。

2
baj

AviDは、ネットワークレベルのIDSを回避するためにIPフラグ攻撃の概念を採用し、それをレイヤー7httpデータに適用するというアイデアで正しい方向に進んでいました。 SQLiペイロードを分割して、入力フィルターを回避し、バックエンドシステムに対して機能するようにする場合、攻撃手法は「HTTPパラメーター汚染(HPP)」と呼ばれます。 HPPは、ユーザーが複数のパラメーターが同じ名前のリクエストを送信する攻撃です。このような場合、アプリの応答方法にはさまざまなレベルのばらつきがあります。彼らは最初のペイロードを受け取りますか?最後? ASP/ASP.NETサイトの場合、実際にはすべてのペイロードを同じ名前で連結します。これにより、「断片化」タイプの攻撃が可能になります。トピックに関する私の以前のブログ投稿を参照してください- http://tacticalwebappsec.blogspot.com/2009/05/http-parameter-pollution.html

そしてここ

http://tacticalwebappsec.blogspot.com/search?q=parameter+pollution

また、OWASP ModSecurityコアルールセット(CRS)の現在のバージョンには、ASPを模倣し、検査のために同じ名前のパラメーターをカスタムTX変数に連結するHPPの実験的なルールセットがあります後のルールで-

http://mod-security.svn.sourceforge.net/viewvc/mod-security/crs/trunk/experimental_rules/modsecurity_crs_40_http_parameter_pollution.conf

乾杯、ライアン

5
Ryan Barnett

私の知る限り、IPフラグメントはmod_securityに渡される前に再構築されます。
本質的に、mod_securityはWebサーバーへの単なるプラグインであり、それ自体でIP関連のものを処理することはありません。受信するのは常に完全なHTTPリクエストです。

そのため、簡単な答えは「いいえ」になります。

しかしながら。
回避の概念(異なるパケット間の分割攻撃)を採用し、これをアプリケーションレベルまで上げると、そこで遊ぶ余地があるかもしれません。
例えば。 2つのHTTPリクエストを使用して攻撃を実行することは可能ですか?これは非常にアプリケーション固有の問題であり、些細なことではありません。

しかし、もっと些細なことに、HTTP範囲要求についてはどうでしょうか。
mod_securityがそれらをブロックする方法を知っている場合、ここで答えがわからないと言って申し訳ありません。
ただし、他のほとんどのWAFはそうですが、完全に噛み砕かれていないものは...

4
AviD