Kritická zranitelnost v šabloně OneTone

WordPress šablona OneTone obsahuje kritickou zranitelnost, jenž umožňuje nasadit útočníkům do vašeho webu škodlivý kód.

Před několika dny se na nás obrátil zákazník, s tím, že má napadený web a i když jej vyčistí, infekce je za chvíli zpět.

Nejprve jsme se domnívali, že jde o infekci, jenž se nedávno prohnala internetem a jenž využívala především zranitelný adminer, viz. https://blog.sucuri.net/2019/11/vulnerable-versions-of-adminer-as-a-universal-infection-vector.html.

Na dotyčném webu, ale žádný adminer nebyl, ani žádný známý zranitelný plugin.

Nebudu to prodlužovat, průser problém je v šabloně OneTone od MageeWP.

Ta umožňuje útočníkům změnit option pro nastavení šablony. Konfigurace šablony se z databáze natahuje při načtení každé stránky a útočníkům pak umožní provádět ošklivé, nepěkné věci.

Kód, který za to může je tato funkce:

function onetone_options_import(){
    $option_name = onetone_option_name();
    if(isset($_POST['options'])){
        $options = stripslashes($_POST['options']);
        $new_options = json_decode($options, true);
        
        if(is_array($new_options) && $new_options != NULL ){

            update_option($option_name,$new_options);
            _e( 'Import successful.', 'onetone');
            exit(0);
            }
        }
    _e( 'Import failed.', 'onetone');
    exit(0);
}
add_action('wp_ajax_onetone_options_import', 'onetone_options_import');
add_action('wp_ajax_nopriv_onetone_options_import', 'onetone_options_import');

Jde o ajax callback pro uložení nastavení šablony.

$options = stripslashes($_POST['options']);

Stripslashes opravdu ničemu nezabrání a útočník si do db uloží co chce, konkrétně něco takového:

Screen jsem si půjčil ze Sucuri.net, odkaz na konci článku.

Chování scriptu je následující:

  1. Do top baru, což je černá lišta zobrazená administrátorovi, přidá kód, jenž hlídá, zda je načítán soubor wp-admin/user-new.php
  2. Zkontroluje existenci cookie Tho3faeK.
  3. Sestaví pomocí parametrů url, kterou přidá k user-new.php.
  4. Vyvolá POST request a vytvoří nového uživatele s admin oprávněním.

Výsledek je známý každému, kdo se setkal s napadeným webem – dochází k přesměrování na jiné stránky a web je tak nedostupný.

V současné době je šablona odstraněna z WordPress.org, a není známý žádný update s opravou

V době psaní tohoto článku jsem si stáhl zip soubor se šablonou a kód je stále zranitelný.

Pokud máte šablonu nainstalovanou, okamžitě ji odstraňte.

Odkazy:

https://blog.sucuri.net/2020/04/onetone-vulnerability-leads-to-javascript-cookie-hijacking.html

https://blog.nintechnet.com/unauthenticated-stored-xss-vulnerability-in-wordpress-onetone-theme-unpatched/

Pokud rádi riskujete – https://mageewp.com/onetone-theme.html

About The Author

Zajímá mne Wordpress, responsivní šablony a zkrátka vše kolem tohoto skvělého redakčního systému.

Související články

1 Comment

  1. Pingback: Kritická zranitelnost v šabloně OneTone – WP kompas

Přidejte komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *