V decembri 2012 sa objavil na internete článok WordPress Pingback Vulnerability, ktorý rozoberal možnosti zneužitia spätných upozornení (pingbacks) vo WordPress. Na tento problém ale už bolo upozornené oveľa skôr, WordPress Pingback Attack a WordPress DoSnet. Je to dobre známa funkcionalita využívaná mnohými blogermi.
Spätné upozornenie alebo „pingback“ je jednou z metód spätného odkazovania, kedy dotyčná webová stránka dostane informáciu o tom, že na jeho obsah smeruje nejaký odkaz. Toto umožňuje autorom článkov udržiavať si prehľad o tom, kto na nich odkazuje. Niektoré blogovacie aplikácie, vrátane WordPress, majú vstavanú podporu pre spätné upozornenia a odosielajú ich ihneď po publikovaní článku.
Utočník má štyri potenciálne cesty ako uškodiť vašej webovej stránke prostredníctvom xmlrpc.php
, čo je súbor obsiahnutý vo WordPress pre podporu XML-RPC. Jednou z metód vystavenou svetu v tomto API je práve pingback.ping. Aplikácia spracúva prichádzajúce spätné upozornenia a posiela naspäť požiadavku, ktorá má zistiť či sa na danej URL nachádza spomenutý odkaz na ten čo onen článok. Ak sa hľadaný odkaz na stránke naozaj nachádza, vytvorí sa pri článku komentár so správou, že ho niekto spomenul na svojom webe.
- Získavanie informácií — útočník môže zisťovať hostiteľov vo vašej internej sieti. (http://vasweb.tld/tato, http://vasweb.tld/dalsia…)
- Skenovanie portov — útočník môže skenovať porty vo vašej internej sieti a podľa odozvy zisťovať či sú otvorené alebo zatvorené.
- DoS útok — útočník môže posielať odkazy z veľkého množstva webových stránok, čím spôsobí DoS útok.
- Hackovanie routeru — útočník má teoreticky možnosť zmeniť nastavenia vášho routeru napríklad za pomoci použitia takejto URL http://admin:admin@192.168.0.1/changeDNS.asp?newDNS=1234.
Ako sa chrániť?
Ak viete, že nebudete používať žiadnu funkcionalitu XML-RPC…
Aktivujte si modul Prevent XMLRPC.
Alebo druhá možnosť je to celé uzamknúť cez .htaccess
:
# protect xmlrpc <IfModule mod_alias.c> RedirectMatch 403 /xmlrpc.php </IfModule>
Použite to po ostatných pravidlách v súbore .htaccess
v koreňovom adresári webu. Otestujete to otvorením xmlrpc.php
vo vašom internetovom prehliadači (napr. http://vasweb.tld/xmlrpc.php). Mali by ste dostať “403 – Forbidden message”. Tip: na presmerovanie xmlrpc.php
na ľubovoľnú stránku, zmeňte RedirectMatch nasledovne:
# protect xmlrpc <IfModule mod_alias.c> Redirect 301 /xmlrpc.php http://vasweb.tld/lubovolna-stranka.php </IfModule>
Alternatívnou .htaccess metódou je zakázať kompletne prístup k xmlrpc.php
# protect xmlrpc <Files xmlrpc.php> Order Deny,Allow Deny from all </Files>
V prípade použitia tohto spôsobu je možné povoliť spätné odkazy z niektorých IP adries, napríklad z vašej vlastnej, blogovacích služieb ako Blogger či MovableType a podobne:
# protect xmlrpc <Files xmlrpc.php> Order Deny,Allow Deny from all Allow from 123.456.789 Allow from 321.654.987 </Files>
Tieto obštrukcie je možné ľahko odstrániť po tom, ako sa zraniteľnosť odstráni v niektorej z budúcich WordPress verzií.
Napísať tento článok ma viedlo opätovné rozobratie spomínaného problému v Protection for WordPress Pingback Vulnerability.