とある診断員の備忘録スマートフォン用の表示で見るとある診断員の備忘録この広告は、90日以上更新していないブログに表示しています。Serverのバージョンが秘匿されていたとしても、脆弱性の修正や、仕様変更による応答差分を確認することによって、バージョンを特定することができるよというMBSDさんの記事です。Serverであればかなり古いですが他にも以下の二つの脆弱性なども脆弱性が修正されているかどうかによる応答差分で、バージョンの判定が可能だったかなーと記憶しています。Serverバージョン判定の小ネタがあったのを思い出したので、折角なので今回ブログに書こうかと思います。最初に書いておきますが、かなり古いバージョンの判定ができるってだけなので、今となっては正直実用性0だと思います。1.1(RFC2616)にて定義されているHTTPメソッドの一つであり、デバッグなどの目的で利用されるもので、HTTPリクエストの内容をHTTPレスポンスとしてクライアントにそのまま返すというものです。Tracingという本メソッドを利用する攻撃手法が存在するため、セキュリティスキャナなどでは、Webサーバー側で本メソッドが有効になっていると良く指摘項目として検出します。現行のブラウザでは上記の攻撃手法は対策されており、現在ではこのメソッドが有効であっても大した実害はないといえます。こちらについては徳丸さんが以下の記事にて詳しく解説されています。徳丸浩の日記ちなみに本メソッドはApacheの設定変更で簡単に無効化することができます。Serverではサーバ側にて本メソッドを無効にしている場合の応答結果が、実はあるバージョンを境に変化しています。Serverのバージョンを判定することが可能です。試してみよう!論より証拠ということで、応答内容の変化を確認してみましょう。Serverの2.2系を全部ソースインストールして、バージョンごとに別々のポートで起動させてみます。done※実行するのであれば、事前にwgetやgccなどはインスコしてください。Serverを起動しています。ServerIPとかやってnmapを実行してやるともりもりバージョンが表示されるので結構壮観です。こちらを使えばMBSDさんのブログに記載したあった内容の検証もはかどりそうですwさて次にpythonで簡単ですが以下のような各ポートにTRACEメソッドを打ち込んで、HTTPレスポンスのステータスコードを表示させるようなスクリプトを作ってみました。version")このスクリプトを実行すると以下のような結果となります。version2.2.34:405というわけで、2.2.6と2.2.8を境に応答結果が、403から405へと変化していることが確認できます。2.2.6と2.2.8のソースを比較して調査してみた結果、「modules/http/http_filters.c」のコードに以下のような差分があることを確認しました。405(HTTP_METHOD_NOT_ALLOWED)を返すように修正されていますね。httpdが2.2.6以下であるかということが判別できるわけです(ドヤァ)まあ、だからどうしたって感じですよね...。あと「僕の」とかって書きましたが、他にも脆弱性診断とかやってらっしゃる方だったら気づいていた方も多かったのではないでしょうか。脆弱性診断を実施していると結構色々なバージョンのApacheに出会うため、以前この応答差分にたまたま気が付いて、気になってちょっと色々検証してみましたという感じでした。今となっては相当古いバージョンが判別できるってだけの小ネタなので、飲み会のときのネタぐらいにしていました。2.2.XのEOLが2017年12月と発表されているため今回このネタの供養の意味も込めて記事を書かせていただきました。関して検証してみたどうも、Drupalを一回も運用したことがないのに、インストール...2018-12-03ハニーポットについての小ネタ久々にブログを投稿します。Shopを触ってみた!月別アーカイブはてなブログをはじめよう!tigerszkさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。