IISサーバーの脆弱性と悪用手法:バグバウンティガイド
2026年3月18日公開の miguel llamazares の記事により、Microsoft IIS(Internet Information Services)ウェブサーバーのセキュリティ脆弱性と、バグバウンティプログラムにおける悪用手法が詳細に解説された。Orwa Atyat と Assetnote の研究に基づく包括的なガイドは、偵察手法から列挙、攻撃ベクトルまで IIS および ASP.NET 環境特有の問題をカバーしている。
IISサーバーの偵察と列挙手法
IISサーバーの発見と特定には複数の手法が利用できる。IISのスプラッシュページはサーバーの設定ミスを露出させるほか、Shodan クエリを用いて組織のSSL証明書に関連するIISサーバーを特定することが可能である。また Google dorking では、インデックスされた aspnet_client フォルダや _vti_bin 拡張子を通じてIISターゲットを発見できる。加えて、Shodan クエリを使用することで、ステージングサーバーや忘れ去られた管理パネル、内部ツールが時には発見される可能性がある。
IISは HTTP/1.0 リクエストに対して、特にExchangeやOWA環境において、Locationヘッダーに内部IPアドレスを開示するサーバーもある可能性がある。IIS自体は Server: Microsoft-IIS/10.0 や X-Powered-By: ASP.NET といったレスポンスヘッダーに識別子を含める。

DOS 8.3形式のファイル名列挙とファイル処理の問題
IISはDOS 8.3ファイル名規約に由来するレガシー動作を持つ。特別に細工されたリクエストを送信することで、ディレクトリリスティングが無効化されている場合でも、サーバー上のファイルとディレクトリの短い名前を列挙することが可能である。IISはファイルパスに対して大文字小文字を区別しない。
IISはトレーリングドット付きのファイル名を削除し、ファイルを通常通り提供する。たとえば shell.aspx. は shell.aspx として解決される。この特性は機械キーへのアクセスと組み合わせた際に問題となる可能性がある。
ViewStateの偽造とサーバーサイドインクルード
IISの web.config ファイルには、ViewStateの暗号化署名に用いられる機械キーが格納されている。機械キーを入手した場合、悪意のあるシリアライズViewStateペイロードを偽造し、デシリアライゼーション経由でリモートコード実行を達成できる。ASP.NET のクッキーレスセッション機能は URL内で (S(X)) 構文を使用する。
サーバーサイドインクルードは .stm、.shtm、.shtml 拡張子で機能する。IIS はデフォルトでは複数のファイル拡張子を text/html として提供し、ファイルアップロード経由の保存型XSSを可能にする。IIS および ASP.NET は重複するHTTPパラメータをデフォルトではコンマで連結する。
この記事は元記事の事実のみに基づいて自動生成されました。
筆者の見立て
- IISはウェブ上で最も一貫して設定ミスが起きるウェブサーバーの一つだと論じている
- バグバウンティにおけるIISの攻撃面は相当広いものの、一貫して過小評価されていると解釈している
- 多くのセキュリティ研究者が最新のJavaScriptフレームワーク脆弱性を追い求める一方で、WindowsサーバーがIPアドレスを漏らし続けていると述べている
- HTTPAPI 2.0というエラーが実際に意味するのは、サーバーがHostヘッダーで正しいドメイン名を受信しなかったことだと解釈している
出典
miguel llamazares — 「humiliating iis servers for fun and jail time」 https://mll.sh/humiliating-iis-servers-for-fun-and-jail-time/
(Assetnote、NahamCon2021、THE POWER OF RECON by Orwa Atyat の報道による)