Dvě zranitelnosti v populárním pluginu Hide my WP - Affinite.io CZ

Prémiový plugin Hide my WP, který má na CodeCanyon téměř 30 tisíc prodejů, obsahuje dvě závažné zranitelnosti. Obě byly opraveny ve verzi 6.2.4, proto neotálejte s aktualizací.

Hide My WP je plugin, který umožňuje skrýt co nejvíce známek toho, že web je postavený na WordPressu. Je zmiňován v mnoha článcích na různých webech, včetně musilda.cz, jako jedno z možných vylepšení bezpečnosti.

Bohužel, obsahuje zranitelnosti, které objevil tým https://patchstack.com/ a okamžitě kontaktoval autory pluginu. Ten nezareagoval ani po týdnu, proto kontaktovali Evato, které zareagovalo do deseti minut. Vývojář pak po dalších dvaceti jedna dnech, vydal opravu.

U pluginu, který má zvyšovat zabezpečení webu, by měla být reakce podstatně rychlejší.

Pojďme však ke zranitelnostem.

První zranitelnost umožňuje přihlášenému uživateli jakékoliv úrovně deaktivovat plugin.

Stačí jednoduše vyvolat url

/wp-admin/admin-ajax.php?die_message=new_admin&action=heartbeat

a protože funkce die_message() nekontroluje oprávnění uživatele, vypíše na obrazovku option hmwp_reset_token, které pak lze využít k deaktivaci pluginu při načtení souboru /wp-content/plugins/hide_my_wp/d.php z root složky pluginu.

Fix: do funkce byla přidána kontrola oprávnění uživatele.

Druhá zranitelnost je vážnější, protože umožňuje použít SQL injection.

Kód, který umožňuje injection vypadá takto:

$user_ip = $this->hmwp_get_user_ip();
$dbips_info = $wpdb->get_var("SELECT `ip` FROM `{$blocked_ips_table}` WHERE `allow`='1' AND `ip`='{$user_ip}'");

Metoda hmwp_get_user_ip se snaží získat ip adresu z různých hlaviček a to u z těch, které mohou být podvrženy. Vložením škodlivého kódu do jedné z těchto hlaviček, dojde k jeho použití v SQL dotazu a injection je na světě.

Například pomocí CURL:

curl --location --request GET "https://example.com" --header "X-Forwarded-For: 1' union all select sleep(3)#
"

Zranitelnost byla opravena přepsáním SQL dotazu z metody get_var na prepare, která vstupy sanituje a v které se musí definovat typ proměnné, jenž má být v dotazu použita.

Závěr:

Pokud používáte plugin, nezbývá vám, než jej zaktualizovat. Bohužel, se jedná o prémiový plugin, takže aktualizace z WordPress repozitáře není k dispozici a automatickou vám to nabídne, pouze, pokud máte obnovenou půlroční subscription. Což u pluginů z Codecanyonu není zrovna běžné.

Nastavení vlastního typu produktu v administraci
Nastavení vlastního typu produktu v administraci
28 Lis, 2021
Přidání jména do předmětu e-mailu WooCommerce
Přidání jména do předmětu e-mailu WooCommerce
22 Pro, 2021

Looking for something?