Není žádný univerzální postup, kterým jde zjistit, jaký CMS a v jaké verzi na webu běží, proto se budeme muset omezit na meta tag generator. V tomto tagu se u většiny CMS vyskytuje jméno CMS a jeho verze. Ne všechny CMS ale toto umožňují a také je tato vlastnost často deaktivovaná (z bezpečnostních důvodů).
V příkladu si napíšeme jednoduchý python skript, který prochází webové stránky a hledá v nich již zmíňený meta-tag. Skriptu musíme dát seznam webových stránek, které má prohledat. Já jsem použil seznam top milion stránek od Alexy, který současně slouží k tomu, aby neprohledával stránky na které nikdo nechodí.
Skript
import re
import urllib2
from BeautifulSoup import BeautifulSoup
instance = "".join(sys.argv[1])
pages = [i.strip().split() for i in open("pages.txt").readlines()]
print "precteno"
for c in pages:
url = "".join(c)
try:
html = urllib2.urlopen("http://" + url).read()
if '<meta name="generator" content=' in html:
soup = BeautifulSoup(html)
version = soup.find("meta", {"name":"generator"})['content']
print version + " " + url
except urllib2.HTTPError, err:
pass
except Exception,e:
pass
Tento skript je pomalý a prohledat s ním milion stránek by trvalo přibližně měsíc. Proto jsem udělal multithreadovou verzi kterou můžete najít na githubu.
Výstup ze scriptu můžete přesměrovat do souboru. Poté můžete soubor abecedně seřadit (příkaz sort), čímž dosáhnete i seřazení jednotlivých CMS podle verzí.
Situace na webu
Kromě samotného seznamu webů a verzí CMS se dají získat i jiná zajímavá data.
Top 15 CMS
WordPress 3.6
WordPress 3.5.1
WordPress 3.5.2
Joomla! 1.5 - Open Source Content Management
Joomla! - Open Source Content Management
WordPress 3.4.2
WordPress.com
WordPress 3.3.1
Starfield Technologies; Go Daddy Website Builder v6.1.2
Homestead SiteBuilder
WordPress 3.4.1
WordPress 3.5
WordPress 3.2.1
WordPress 3.3.2
Drupal 7
Poměrně překvapivá je Joomla! 1.5 na čtvrtém místě a WordPress 2.7.1 který se se svým 49. místem pořád drží v první padesátce. To ukazuje jak tristní je situace na dnešním webu, protože obě ze zmíněných CMS obsahují kritickou zranitelnost.
Jak ochránit svůj web?
Odstraňte meta-tag generator. U WordPressu je to možné třeba pomocí jednoduchého pluginu.
Nainstalujte si plugin, který bude CMS automaticky updatovat, tak se vám nikdy nestane, že budete mít jeho starší verzi.
Nainstalujte si plugin, který komplexně chrání Váš web. Takové pluginy i často odstraňují meta-tag generator. Pro WordPress mohu doporučit „Secure WordPress“.
Přečtěte si článek „Take 5 Minutes to Make WordPress 10 Times More Secure“. V něm se dočtete, jak zabezpečit WordPress tak, že by ho neměl hacknout žádný z k tomuto účelu stvořených robotů.