弊社のIISサーバーの1つ(IIS 7.5、Server 2008 R2)は、どうやら「脆弱」であるようです。チルダ短縮ファイル名の開示問題。
しかし、実際に問題を解決するのは困難です。これまでのところ、私は
8.3 ファイル名を無効にし、Web サーバーを停止し、サイト ディレクトリを再作成してサービスを再開しました。
URL 内のチルダに対するフィルター ルールを追加しました:
- チルダ ANYWHERE のフィルター ルールを追加しました:
IISRESET
数回web.config
関連するフィルタルールが追加されていることを確認しました
..しかし、私のサイトはまだテスト:
java -jar ~/temp/IIS-ShortName-Scanner-master/IIS_shortname_scanner.jar http://www.example.com
[...SNIP...]
Testing request method: "TRACE" with magic part: "/webresource.axd" ...
Testing request method: "DEBUG" with magic part: "" ...
Testing request method: "OPTIONS" with magic part: "" ...
Testing request method: "GET" with magic part: "" ...
Reliable request method was found = GET
Reliable magic part was found =
144 requests have been sent to the server:
<<< The target website is vulnerable! >>>
これを解決するには他に何をする必要がありますか?
編集:ここではDIR /x
8.3 ファイル名が表示されないようです:
サイトのアプリ プールは次のとおりです (サーバー上の他のすべてのサイトは同じです)。
編集2: 8.3 ファイル名が残っていないことの確認:
答え1
次のコマンドを使用して、既存の短いファイル名をスキャンしますfsutil
。
fsutil 8dot3name scan /s /v E:\inetpub\wwwroot
見つかった場合は剥奪します。
fsutil 8dot3name strip /s /v E:\inetpub\wwwroot
また、空のマジックパーツ( )があるログを見るとmagic part: ""
、POCのバグなのではないかと思います。config.xml後ろに余分なコンマがあるようです/webresource.axd
:
<entry> key="magicFinalPartList">
<![CDATA[\a.aspx,\a.asp,/a.aspx,/a.asp,/a.shtml,/a.asmx,/a.ashx,/a.config,/a.php,/a.jpg,/webresource.axd,,/a.xxx]]>
</entry>
私はTwitterで開発者にこの件について尋ねたところ、彼は次のように答えました:
ということで、今は安全なようですね :)
答え2
また、「注意: NtfsDisable8dot3NameCreation レジストリ エントリへの変更は、変更後に作成されたファイル、フォルダー、およびプロファイルにのみ影響します。既に存在するファイルは影響を受けません。」
注意: 8.3 ファイル名の作成を無効にすると、Windows でのファイル パフォーマンスは向上しますが、一部のアプリケーション (16 ビット、32 ビット、または 64 ビット) では、長いファイル名を持つファイルやディレクトリを見つけられない場合があります。
答え3
残念ながら、これを実際に処理する唯一の方法は、Windows のバージョンに応じて、8.3 形式の名前を生成する機能を無効にする、面倒な一連の操作を実行することです。
お使いの Windows のバージョン:
すべての NTFS パーティションで 8.3 名の作成を無効にするには、管理者特権のコマンド プロンプトで「fsutil.exe behavior set enable8dot3 1」と入力し、Enter キーを押します。
答え4
新しいデプロイメントのたびにストリップすることはできないため、最適なソリューションは以下のとおりです。
以下のリンクを使用して、サイトの脆弱性をテスト/スキャンします (Java をインストールし、テスト/スキャンのコマンドを実行します)。
サイトをスキャンするコマンド:
java -jar iis_shortname_scanner.jar 2 20 https://example.com/
既存の短いファイル名をスキャンします:
fsutil 8dot3name scan /s /v c:\inetpub\wwwroot
8dot3 名の作成が無効か有効かを確認します。
fsutil 8dot3name query C:\Release\SiteRootDocumentPath
8dot3 名の作成が有効になっている場合は、以下のコマンドを使用して無効にします。
fsutil 8dot3name set C:\Release\SiteRootDocumentPath 1
8dot3name プロパティは、指定されたボリュームの 8dot3 名の作成を有効にするように設定されています (0)、または指定されたボリュームの 8dot3 名の作成を無効にするように設定されています (1)
サイトの物理パス (SiteRootDocument) にコードを再デプロイしても、短い名前のファイルは作成されません。
スキャンは合格します:)