Tom Anthony na svém blogu představil chybu, kterou objevil v roce 2017 a dostal za její nahlášení 1337 USD v rámci Google bounty programu. Pomocí ní šlo celkem jednoduše ukrást návštěvnost jinému webu podvržením Sitemap. Jen pro zajímavost Google trvalo takřka půl roku než jí opravil.
Nejdříve si řekneme pojmy, které k pochopení celého zneužití jsou potřeba.
Sitemap
Sitemap je protokol pro komunikaci s vyhledávači. V podstatě je to soubor, který obsahuje seznam URL stránek na doméně a další informace pro vyhledávače k nim (kdy byla stránka naposledy upravena, jak často by měla být procrawlována a s jakou prioritou).
Příklad:
<?xml version="1.0" encoding="utf-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>http://domena.tld/adresar/stranka.php</loc> <lastmod>2013-08-29</lastmod> <changefreq>daily</changefreq> <priority>0.8</priority> </url> </urlset>
Odeslání sitemapy přes Ping Google
Google umožňuje Sitemapu odeslat přes zavolání URL.
http://www.google.com/webmasters/sitemaps/ping?sitemap=http://domena.tld/sitemap.xml
Když takto zavoláte Google, tak za relativně krátkou dobu robot Google otestuje jestli je na dané adrese opravdu sitemapa a pokud je, tak předá povel GoogleBotovi.
Open Redirects
Některé webové stránky umožňují přesměrovat návštěvníka zavoláním specifického parametru v URL. Většinou se to používá při odhlašování.
Příklad:
http://domena.tld/?redirect_to=login.php
Náš příklad přesměruje návštěvníka na stránku login.php. Samozřejmě URL můžeme upravit jak se nám zlíbí, což na jednu stranu umožňuje velmi snadné přesměrování ovšem kdokoliv může upravit URL a pak jí třeba sdílet na sociálních sítích. V nejhorším případě to dopadne přeměřováním na neexistující stránku. Tedy pokud programátor ošetřil všechny zranitelnosti.
Pokud ne, tak by klidně následující příklad mohl přesměrovat návštěvníka na jinou doménu:
http://domena.tld/?redirect_to=http://cizi-domena/podvodnastranka.php
Tohle je bezpečnostní zranitelnost, která zavání velkými problémy.
Nešetřený vstup u Google Ping mechanizmu
Tom Anthony využil všechno výše uvedené k tomu, aby oklamal Google a podvrhl mu falešnou sitemapu.
http://www.google.com/webmasters/sitemaps/ping?http://domena.tld/?redirect_to=http://jinadomena.tld/podvrh.xml
Takže co se stalo. Google přijme ping. Pošle svého robota na domena.tld. Tam se nachází přesměrování na jinadomena.tld/podvrh.xml. Následuje přesměrování a stahuje si podvrh.xml, který v systému přiřadí k domena.tld.
Teď kontrolujete sitemap.xml, který si Google myslí že je na domena.tld.
Zneužití přes hreflang
hreflang se většinou dává do webové stránky, aby pomohl Google říct, kde najde jazykovou mutaci webu. Ovšem dá se dát i do souboru sitemap. Vzhledem k tomu, že jiná jazyková verze webu se nemusí vždy nacházet na stejné doméně, tak Google připouští i odkaz na jinou doménu.
Takto to vypadá:
<url> <loc>http://www.domena.cz/cesky/</loc> <xhtml:link rel="alternate" hreflang="en" href="http://www.domena.com/anglicky/" /> <xhtml:link rel="alternate" hreflang="de" href="http://www.domena.de/nemecky/" /> </url>
Tom Anthony takto zkusil přebrat návštěvníky, kteří mluví US (americkou angličtinou).
No a fungovalo to. Do 48 hodin se mu začali objevovat první návštěvníci. Za pár dní už se jeho falešný web objevil ve výsledcích vyhledávání. Dokonce uviděl v Search Console, že na jeho falešný web vedou odkazy z pravého. Prostě mu kradl všechen link juice :)
Závěr
Podle mě by si Tom Anthony zasloužil větší odměnu, protože tento tato zranitelnost je fakt síla.
Detailnější návod, včetně screenshotů najdete na jeho blogu:


Dosť zaujímavé a strašne by ma to lákalo byť na jeho mieste troch to viac potestovať a isť niekde až do extrémov a skúsiť ukradnuť desiatky až stovky tisíc návštev denne, len čisto pre vedecké účely, či to vlastne ide/išlo. Tú fin. odmenu mu dali fakt smiešne nízku.
Krast navstevnost ve stovkach az tisicich lidi denne lze i jinak, jen diky blbosti webmasteru a neaktualizovanych webu :) a ve vysledku je to strasne jednuche.