V rámci projektu výzkumu zranitelnosti pro firewall Sucuri byly auditovány oblíbené open source projekty a hledány bezpečnostní problémy.
Během práce na pluginu WP Statistics, byla objevena zranitelnost SQL Injection. Tento plugin je aktuálně nainstalován na více než 300 000 webových stránkách.
Jste v nebezpečí?
Tato zranitelnost je způsobena nedostatečnou kontrolou dat, poskytnutých uživatelem. Útočník s účtem na úrovni odběratele by mohl získat citlivá data a za příhodných okolností/konfigurace dokonce ohrozit instalaci celého WordPressu.
Pokud máte nainstalovanou zranitelnou verzi a vaše stránky umožňují registraci uživatele, jste určitě v nebezpečí.
Technické údaje
WordPress poskytuje rozhraní API, které umožňuje vývojářům vytvářet obsah, který mohou uživatelé vkládat na určité stránky pomocí jednoduchého shortcodu:
[shortcode atts_1=”test” atts_2=”test”]
Krom jiných funkcí, WP Statistics umožňuje administrátorům získat podrobné informace týkající se počtu návštěv právě tím, že zavolá níže uvedený shortcode:
Jak vidíte na obrázku výše, některé atributy shortcodu wpstatistics jsou předávány jako parametry pro důležité funkce, a to by nemělo být problémem, pokud by byly tyto parametry očištěny, ale jak uvidíme, tohle není ten případ.
Jedna ze zranitelných funkcí wp_statistics_searchengine_query() v souboru „includes/functions/functions.php“ je přístupná prostřednictvím funkce WordPress ‚AJAX díky základní funkci wp_ajax_parse_media_shortcode().
Tato funkce nekontroluje další oprávnění, což umožní registrovaným uživatelům provádět tento shortcode a vkládat škodlivé údaje do jeho atributů. (Tento útokový vektor byl také popsán zde).
V mnoha místech v kódu jsou uživatelské vstupy pocházející z atributů shortcodu wpstatistics’ zahrnuty do dotazů SQL, aniž by byly vyčištěny. Níže je jeden z dotazů, které byly využitelné:
Funkce wp_statistics_searchengine_query() vrací v podstatě stejnou hodnotu jako ta zadaná v poskytovateli shortcode atributů a její obsah je přidán přímo do dotazu raw SQL query.
Aktualizujte co nejdříve
Pokud používáte zranitelnou verzi tohoto pluginu, aktualizujte jej co nejdříve!
V případě, že to nemůžete udělat, důrazně doporučujeme využívat Sucuri Firewall nebo ekvivalentní technologii, aby tuto chybu zabezpečení opravdu opravila.
Zdroj: https://blog.sucuri.net/2017/06/sql-injection-vulnerability-wp-statistics.html