Exit

Je wilt inloggen op het admin gedeelte van je CMSMS-website en.. verdorie, je bent het wachtwoord kwijt. Een half uur lang proberen en het enige wat je ziet is: “Gebruikersnaam of wachtwoord incorrect”.

Om een duistere reden werkt ook de functie ‘Wachtwoord vergeten’ niet dus daarmee valt het probleem ook niet op te lossen. Natuurlijk even googelen en uitkomen bij het volgende artikel op de website van CMS Made Simple zelf: FAQ2 – CMSMS. Goede beschrijving van het probleem inderdaad maar de aangedragen oplossing werkt niet.

Wat ze daar namelijk zeggen is dat je volgende query moet uitvoeren:

SQL
UPDATE cms_users SET PASSWORD = md5('admin') WHERE user_id = 1;

Wat je dan krijgt is het volgende wachtwoord: 21232f297a57a5a743894a0e4a801fc3.

Maar zoals gezegd, dat werkt niet.

Het zit zo.. Tijdens de installatie van CMSMS kun je een gebruikersnaam en wachtwoord kiezen en daarbij kun je (let op, nu komt de clou *tromgeroffel*) met een checkbox kiezen of het wachtwoord versleuteld moet worden. Goed om te weten is dat dit vinkje standaard aan staat.

Wanneer je het vinkje uit zet wordt je wachtwoord via een standaard md5 functie weggeschreven. Staat het vinkje echter aan, dat wordt er een salt gegenereerd die samen met je gekozen wachtwoord via md5 het password wordt. En precies die salt vergeten ze op de CMSMS wiki.

Die salt zelf wordt weggeschreven in de tabel siteprefs:

SQL
SELECT sitepref_value FROM cms_siteprefs WHERE sitepref_name = 'sitemask';

Goed, hebben we dat ook helder. Met onderstaande query fix je de hele ellende, je wachtwoord wordt dan: admin. Let hierbij ook ff op dat ik hier de prefix ‘cms_’ gebruik. Dit is de default instelling tijdens de installatie van CMSMS. Welke prefix actief is op jouw site kun je checken in de config.php en dan op zoek naar de $config[‘db_prefix’] variabele.

SQL
SET @salt = IFNULL((SELECT sitepref_value FROM cms_siteprefs WHERE sitepref_name = 'sitemask'),'');
SET @password = 'admin';
UPDATE cms_users SET password = md5((SELECT CONCAT(@salt, @password))) WHERE user_id = 1;

Bovengenoemde query werkt met alle versies van CMSMS. Hoewel de sitemask pas in versie 1.10 is toegevoegd zorgt het IFNULL statement voor de compatibiliteit met eerdere versies van CMSMS.

Leave a reply

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Close
Go top