NELZE SE PŘIHLÁSIT DO REDAKČNÍHO SYSTÉMU JOOMLA - INFORMAČNÍ STRASTI

1 1 1 1 1 1 1 1 1 1 Hodnocení 100% (5 Hlasů)

S odmlkou několika let jsem opětovně sáhl po redakčním systému Joomla! se, kterou mám z dřívějších dob velké a snad i dobré zkušenosti (před Joomlou! jsem se hodně angažoval s předchůdcem „Mambem” ,ale od té doby nám uběhla minimálně dekáda). Zpět k problematice s přihlášením do cms. Jednoho dne tvořím webový portál na systému Joomla! a cca po šesti hodinách zjistím, že se nemohu přihlásit do administrace.

Zajímavé bylo, že systém nehlásil chybu hesla, ani neznámý účet. Jen se po zadání hesla vůbec nic nestalo.

Samozřejmně nejbližší záloha cca 20 hodin stará :-( a tak nastala doba laborování jak se do systému „vloupat”.

Z minulosti jsem si pamatoval jeden trik, jak změnit heslo v databázi, říkal jsem si kdyby náhodou, ale už ten pocit byl takový, že to je zbytečné a také bylo. Původní účet byl resetován a dokonce jsem si vytvořil nový a nic. Chvilku hledání to zabralo a řešení bylo na světě. Níže si ukážeme několik způsobů jak v podstatě "hacknout" vlastní Joomlu!


U všech níže popisovaných postupů je potřeba mít přístup (dle použité metody) k FTP úložišti nebo databázi.

metoda I.

Pokud máte založeného jiného uřživatele, který nemá práva admin nebo superadmin lze se na něj přihlásit stačí pozměnit konfigurační soubor configuration.php. Tento soubor nalezneme na FTP v kořenovém adresáři Vaší Joomly. Na poslední řádek souboru vložíme níže uvedený text.

public $root_user='jmeno_funkcniho_uzivatele'; 

Tento řádek zajistí přidání oprávnění "superadmin" pro uvedeného uživatele v uvedeném parametru.

metoda II.

Pomocí této metody si založíme nového uživatele s oprávněním "superadmin". Je potřeba se přihlásit ke svému PhpMyAdmin (nebo alternativnímu správci vaší db). Vyberte databázi Vaší Joomly! se kterou máte potíže a následně proveďte spuštění níže uvedeného SQL příkazu.

INSERT INTO `jos31_users`
(`name`, `username`, `password`, `params`)
VALUES ('Administrator2', 'admin2',
'd2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199', '');
INSERT INTO `jos31_user_usergroup_map` (`user_id`,`group_id`)
VALUES (LAST_INSERT_ID(),'8'); 
 
Červeně označený prefix jos31 změňte na prefix, který používáte ve Vašem systému (změnte pouze prefix, _users zůstává beze změny). Proveďte spuštění SQL příkazu. Po jeho provedení se Vám do systému přidá uživatel Administrator2 s uživatelským jménem admin2 a heslem secret.
 
 

metoda III.

Existuje metoda jak přistoupit k systému Joomla! bez přihlašovacích údajů (tato metoda mně přijde nejméně riziková na způsobení chyby a nejrychlejší). Níže uvedený text zkopírujte do notepadu a uložte jako log.php.


<?php
define('_JEXEC', 1);
define('DS', DIRECTORY_SEPARATOR);
if (file_exists(dirname(__FILE__) . '/defines.php')) {
    include_once dirname(__FILE__) . '/defines.php';
}
if (!defined('_JDEFINES')) {
    define('JPATH_BASE', dirname(__FILE__));
    require_once JPATH_BASE.'/includes/defines.php';
}
require_once JPATH_BASE.'/includes/framework.php';
require_once JPATH_BASE.'/includes/helper.php';
require_once JPATH_BASE.'/includes/toolbar.php';
$app = JFactory::getApplication('administrator');
JPluginHelper::importPlugin('user');
$user = JUser::getInstance();
$db = JFactory::getDBO();
$q = 'SELECT u.* FROM `#__users` as u
        LEFT JOIN `#__user_usergroup_map` as ug ON u.id = ug.user_id
        WHERE `block` = 0 AND `activation` = 0 AND ug.group_id = 8
        LIMIT 0,1';
$db->setQuery($q);
$user_tmp = $db->loadObject();
$user_tmp->guest = 0;
$user_tmp->isRoot = 1;
// $user_tmp->groups = array(8=>8);
// $user_tmp->_authGroups = array(1,8);
// $user_tmp->_authLevels = array(1,1,2,3);
// $user_tmp->gid = 1000;
foreach($user_tmp as $k=>$v){
    $user->set($k,$v);
}
$session = JFactory::getSession();
$session->set('user', $user);
$app = JFactory::getApplication();
$app->checkSession();
$app->redirect( JUri::base(), "" );
Soubor log.php nahrajte do kořenové složky administrace instalace Joomla! Pak již stačí otevřít webové stránky pomocí příkazu log.php například http://informačni-strasti.eu/administrator/log.php Nyní můžete standardním způsobem v administraci opravit problém s účty. 

!!!POZOR tato metoda je sice rychlá a pohodlná, ale nesmíte zapomenout odstranit soubor php.log jinak se Vám do administrace může dostat kdokoliv jiný.

Výše uvedené postupy jsou funkční pro systémy Joomla! 2.5 a 3.xx

 

 

Komentáře  

# Díky!Petra 2016-10-18 18:45
Díky za postup, osvědčila se mi 3. metoda.
Odpovědět
„Láska vdaných žen je nejcennější na světě, manželé o tom ovšem nevědí.“ Oscar Wilde