バナーグラビング / TomcatのServer infoとか

ウェブアプリならHTTPサーバーとかTomcatのようなアプリケーションサーバのバージョン情報とをHTTPヘッダーやエラーページに表示されるバージョン情報から確認して、脆弱性を利用した攻撃方法の参考にするようなことをバナー・グラビングというらしい。


エラーページの方はなぜかServerInfo.propertiesを抽出して、書き換えてもう一度jarに固めろというページがたくさん見つかる。jarに署名されてる場合にはその方法できないだろとおもうし、version.shで確認できなくなるよ。


https://github.com/apache/tomcat80/blob/trunk/bin/catalina.sh#L581
version.shはcatalina.sh versionを呼ぶんだけど、その中ではcatalina.jarだけclasspathに含めて、ServerInfo.propertiesの内容を表示しているという感じ。jarを固め直すとわからなくなる。



Apache Tomcat 8 (8.0.36) - Security Considerationsを確認するとCATALINA_BASE/lib/org/apache/catalina/util/ServerInfo.propertiesを作成して書き換えなさい。
ということなので、ServerInfo.propertiesを書き換える場合はcatalina.jarから展開して書き換える。

jar -xf catalina.jar org/apache/catalina/util/ServerInfo.properties
vi org/apache/catalina/util/ServerInfo.properties

Server: ヘッダのほうはserver.xmlのConnectorのserver属性を変更する。