CMS(Contents Management System)はサーバー側で動くアプリケーション。
前回はWEBサーバー上で動くWordPressを検査するツール(WPScan)を取り上げました。
しかしながら、そもそもWEBサーバーの検査をする為には、調査される側のWEBサーバーの仕組みを理解しておく必要に(今更ながら)気付いた訳でして。
今回はその調べられる側(客体)の話です。
サーバー側で動いているアプリケーションが判明すると、その固有の脆弱性発見の手掛かりになります。
CMSとは
WEBサイトを見に来たお客さんに対して、サイトの内容を見せるソフトウェアです。
しかしながらWEBサイトは1種類のソフトウェアで実現できている訳ではなく、何層かのソフトウェアが協働しています。
お店に例えると
WEBサイトをお店に例えて、サイトへのアクセスをお店に訪れるお客さんに例えると、
Webサイトの構成要素 | 具体的には | お店に例えると |
ハード | 物理サーバー | お店の建物 |
Webサーバーソフトウェア [ミドルウェアの1つ] | Apache(ApacheHTTPserver) Nginx など多種あり | 店舗の店構え |
CMS(コンテンツ管理システム) [アプリケーションソフト] | WordPress Joomla! Drupal など多種あり | 店内の商品陳列棚 |
コンテンツ | 記事、画像、動画など | 商品 |
つまりCMSは商品を陳列する仕組みに相当します。
そしてWordPressはCMSの1つです。
ホームページビルダーとの違い
サイト(ホームページ)を作成・編集するという機能は同じですが、いくつかの違いがあります。
サーバーサイドかクライアントサイドか
ホームページビルダーの方は、ローカル(手元のパソコン)で編集しておいて、それを後でまとめてサーバーに上げるという、昔ながらの方法をとりますが、CMSはサーバー上で直接サイトの編集をしていきます。
編集作業をローカル側で行うか、サーバー側で行うかの違いです。
データベースとPHP
CMSではサーバー側で作業を行う関係もあり、サーバー側で動くデータベースやPHPとの連携が前提となっています。
結果CMSでは動的なコンテンツが可能です。
Kaliのツール分類に ” 03 Web Application Analysis ” があり、その中の小分類に ” CMS & Framework Identification ” がありますが、そのCMSのことです。
CMSの種類
オープンソース型 | WordPress Drupal TYPO3 Joomla! など多数 |
商用パッケージ | Movable Type Adobe Experience Manager など多数 |
クラウド型 | Share With Blue Monkey など多数 |
上記以外にも多数ありますが、最も使用頻度が高いのは ” WordPress ” です。
CMSの特定方法
そのサイトがどのCMSを利用して作られているかを調べる方法。
オンラインツール | WhatCMS BuiltWith Wappalyzer | 左記のサイト上にあるツールから 調査出来ます |
Kaliのツール | WhatWeb WPScan Nikto Nmap | 追加インストールが必要なツールとして CMSeek BuiltWith CLI |
その他 | ソースコードの確認 識別ファイルの検索 | 後述 |
その他の方法について
ソースコードの確認
ブラウザのHTML表示機能を使い、HTMLソースコードを調べます。
CMSの種類 | HTMLソースコードに含まれる文字列 |
WordPress | ” /wp-content/ ” , ” /wp-includes/ ” |
Drupal | ” /sites/default/ ” , ” drupal.gs ” |
Joomla! | ” /media/system/js/ ” , ” com_content ” |
当サイトは ” WordPress ” で作成していますが、トップページのソースコードを調べた所、 ” wp-content ” が137ヶ所、 ” wp-includes ” が2ヶ所ありました。
識別ファイルの検索
特定のCMSで作成されたサイトには、特定のファイル(識別ファイル)が含まれている場合があるので、それを検索します。
例)
CMS | 識別ファイル |
WordPress | ” /wp-login.php ” , ” /xmlrpc.php ” |
Joomla! | ” /administrator ” |
Drupal | ” /CHANGELOG.txt ” |
これらのファイルを、サイト内のディレクトリ探索ツール(dirbuster, dirb, gobusterなど)を使用して探す事になります。
注意事項)CMSを確認する行為をお店での行為に例えると
下記のように迷惑行為に当たります。
サーバーへの行為 | お店での行為 |
普通にサイトへのアクセス | お店に入店して商品を見る |
CMSを確認する検査 | カウンターの内側やバックヤードに入り、伝票やレジを探る |
必ず相手方の許可を得て、若しくは自分の管理下のサーバーにのみ検査を行いましょう。
ツールを使って調べる行為は ” お店を荒らす ” 行為に相当しますが、上記方法の中で「ソースコードの確認」のみはこれに該当しません。
これは言わば、お店からもらってきたレシートを確認する行為に当たり、迷惑はかけません。
まとめ
昔のホームページの作り方は、ローカルのPCでHTMLで記述したファイルを作って、それをブラウザで確認して、FTPでサーバーに上げるという作業をしていました。
今はサーバーに直接書き込む感覚でサイトの編集ができます。
これもWordPressを始めとしたCMSのおかげという訳です。ありがたい世の中になりました。
コメント