2012-01-02 2 views
1

アプリケーションがヘッダやフォームデータなどに基づいて、疑わしいリクエストを終了するために、リクエストの入力を読み始める前に、追加の検証を実行しようとしました。Application_BeginRequestより前に要求を検証しますか?

可能ですか?

[更新]

私はASP .NET検証によってBeginRequestイベントの前に発生したゼロデイvunerabilityとins'tキャッチを防ぐにおける焦点を当てています。

私がHttpWebRequestオブジェクトの作成を制御できるなら、私はこの攻撃を検出することができました。

【解決手段】

それがネイティブモジュールを使用して解決することができます。私は修正を行わ http://blogs.technet.com/b/srd/archive/2011/12/27/more-information-about-the-december-2011-asp-net-vulnerability.aspx

http://learn.iis.net/page.aspx/169/develop-a-native-cc-module-for-iis/

私が話していたゼロデイ脆弱性が、このブログの記事で説明されています。ネイティブモジュールは(C++を使用して)ここで見つけることができます作成​​について

情報GitHubで見つけられます:https://github.com/ginx/HashCollisionDetector

ありがとうございました。

+0

あなたのソリューションは、まだちょうどネイティブコードから、右、BeginRequestイベントのイベントを使用しての代わりに管理されているように見えますか? – RickNZ

+0

私はそれを使用していますが、私が対処していた問題はASP.netハンドラで発生し、すべてのサーバでDoSが発生しました。 ネイティブハンドラでは、未処理のリクエストが返されるため、問題はまだ発生していません。 マイクロソフトではすでにこのバグを修正しているため、これ以上発生しません。 – LawfulHacker

答えて

2

BeginRequestは、IIS要求処理パイプラインの最初のイベントです。

このイベントの前に起こる事前要求アクションは、HttpContext,HttpRequestおよびHttpResponseクラスのインスタンスの作成だけです。

HttpModules(Global.asaxを含む)の一部のイベントのBeginRequestが他のイベントより先に実行される場合もあります。ただし、ASP.NETは注文に関して保証しません。

0

web.configにvalidateRequest="true"というページを設定することで、HttpApplicationにこれを行うように頼むことができます。

それ以外の場合は、IISパイプラインの標準モジュールの一部を置き換えることができます(時間がない場合はお勧めできません)。それは、ネイティブモジュールを使用して解決することができる

ASP.NET Application Life Cycle Overview for IIS 7.0

IIS 7 Modules Overview

Customizing IIS 7.0 Roles and Modules

+0

これらの標準モジュールをどのように置き換えることができますか? 私はまさにそれを試みています。残念ながら、validareRequestは完璧ではありません。私はゼロデイvunerabilityを修正しようとしています。 – LawfulHacker

+0

私自身はこの経験はありませんが、このMS KBの記事を見たことがありますか?http://support.microsoft.com/kb/957508?それはあなたに時間を節約するかもしれません。 –

+0

このリンクにもいくつかの良い情報があります:http://learn.iis.net/page.aspx/543/administration-pack/ –

関連する問題