著作一覧 |
IIS7に対して、クライアントが(もちろんバグで)DOSISHなURIを与える。
そもそも仕様に合っていないのだから、それをURIと呼んでよいかは別として、つまりリクエスト行が、GET \foo\bar\baz.html HTTP/1.0みたいなやつ。
すると、すかさずIISは400 Bad Requestを返す。
ここまでは正しい。まったくその通り。
しかし、IISはこのリクエストをアクセスログに書かない。
それが、パイプラインの順序のせいなのか、それとも何らかのエスケープ攻撃の可能性と判断してログを表示した時の副作用を警戒してなのかはわからない。
わからないが、とにかくアクセスログに書かない。
かくして、こちらの手元には、クライアントを動かしたら400が返った(らしい)という情報しか無くて途方に暮れる。
ほんの数年前なら、まだマシンはリピータでつながっていたから、そのへんのPCをプロミスキャスモードにしてネットワークキャプチャを動かしてパケットを眺めればよかったのだが、今は、なんでもスィッチだ。なので、クライアントマシンとサーバマシンが鉄壁だと何も調べようがない。
というわけで、腐ったURIを投げているとわかるまでえらく時間を取られた。
結局、リピータを見つけてきて、クライアントとサーバとプロミスキャスモードにしたマシンをつなげた隔離島を作って確認したのだった。
RHGを持っているsukeさんといえば一人しか思い当たらないし、推理小説が結構登録してあるし、でもプロフィール見ても何もわからないから違うかも知れないかも、というような感じだったけど、当たっていた。
ジェズイットを見習え |