トップ «前の日記(2012/01/31(Tue)) 最新 次の日記(2012/02/02(Thu))» 編集

糸の切れた(たこ) ( a threadless kite )

ここは、管理人yamagataが方針未定のまま、何となーく思いついたことを思いついたままにだらだらと書き付ける日記帳です。ふんわりほんわかな感じでお願いします。



2012/02/01(Wed) 水曜日ー。(急速に老けてる気がする。。

[セキュリティ] 400 Bad Request 時の引用の長さでバージョン判定

Apache httpOnly Cookie Disclosure (CVE-2012-0053) の修正に関連して、400 Bad Request の <pre>…</pre> で表示される文字列の桁数が変化したので、これを利用すると、バージョンが隠されていても Apache 2.2.22 未満か以降かを判定できそうです。(8190文字とかのヘッダの最大長を送るよりもお手軽に確認できるので、ここでは「:」が無いリクエストで 400 Bad Request を発生させています。)

  • ↓リクエスト
GET / HTTP/1.0
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|before2_2_21
 
  • ↓レスポンス(Apache 2.2.22 よりも前の場合)
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
Request header field is missing ':' separator.<br />
<pre>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|before2_2_21</pre>
  • ↓レスポンス(Apache 2.2.22 以降の場合)
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
Request header field is missing ':' separator.<br />
<pre>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</pre>

※80桁を超える部分がカットされています。