Last active
December 10, 2015 23:38
-
-
Save besstiolle/4510767 to your computer and use it in GitHub Desktop.
FR ================================ Fichier d'urgence permettant de * S'attribuer des droits d'administrateur dans CmsMadeSimple même sans avoir accès à un phpmyadmin.
* Changer un mot de passe de n'importe quel compte
* Vider le cache de cmsmadesimple Par sécurité il est nécessaire de pouvoir ajouter une ligne dans le fichier config.php, ce qu…
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html lang="fr"> | |
<head> | |
<title>Help me</title> | |
<style> | |
body{ | |
background-color: #000; | |
} | |
#wrapper{ | |
background-color: #E1E2F5; | |
border: 3px solid #FFFFFF; | |
margin: 10px auto; | |
padding: 20px; | |
width: 600px; | |
} | |
table{ | |
border:1px solid #CCC; | |
} | |
p.error, p.warn, p.info{ | |
font-family: Georgia; | |
padding: 5px; | |
text-align: center; | |
color: #000000; | |
border-radius: 100px; | |
} | |
p.error{ | |
background-color: #F9B1B1; | |
border: 1px solid #A07676; | |
color: #621D1D; | |
} | |
p.warn{ | |
background-color: #F9E8B1; | |
border: 1px solid #B2BB71; | |
} | |
p.info{ | |
background-color: #B1F9CB; | |
border: 1px solid #71BB7F; | |
} | |
code{ | |
background: none repeat scroll 0 0 #666565; | |
border: 1px dotted #E4E4E4; | |
color: #FFFFFF; | |
display: block; | |
padding: 10px; | |
} | |
</style> | |
</head> | |
<body> | |
<div id='wrapper'> | |
<div><img alt="follow me" src="data:image/png;base64,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" /> Suivez moi sur <a target='_blank' href='https://twitter.com/besstiolle'>Twitter</a></div> | |
<?php | |
$ts = time(); | |
$allow = $ts + 2 * 60; | |
if(!file_exists('config.php')){ | |
echo <<<HTML | |
<p class="error">il manque le fichier config.php pour fonctionner. Placez ce fichier mayday.php à ses côtés</p>; | |
HTML; | |
} | |
include_once('config.php'); | |
if(!isset($config['mayday']) || !is_numeric($config['mayday'])){ | |
echo <<<HTML | |
<p class="error">Par mesure de sécurité, veuillez ajouter la ligne suivante dans config.php : </p> | |
<code>\$config['mayday'] = '$allow';</code> | |
<p class="warn">Pensez toujours à supprimer le fichier mayday.php du répertoire à la fin de son utilisation</p> | |
</div></body></html> | |
HTML; | |
return; | |
} | |
if($config['mayday'] < $ts){ | |
echo <<<HTML | |
<p class="error">Par mesure de sécurité, votre session a expirée. Veuillez ajouter/modifier la ligne suivante dans config.php : </p> | |
<code>\$config['mayday'] = '$allow';</code> | |
<p class="warn">Pensez toujours à supprimer le fichier mayday.php du répertoire à la fin de son utilisation</p> | |
</div></body></html>"; | |
HTML; | |
return; | |
} | |
$remain = $config['mayday'] - $ts; | |
echo <<<HTML | |
<p class="warn">Par mesure de sécurité, votre session va expirer dans <b>{$remain}s</b></p> | |
<p class="warn">Pensez toujours à supprimer le fichier mayday.php du répertoire à la fin de son utilisation</p> | |
HTML; | |
require_once(dirname(__FILE__).'/include.php'); | |
$queryU ="SELECT u.user_id, u.username, u.admin_access FROM cms_users u"; | |
$queryG ="SELECT g.group_id, g.group_name FROM cms_groups g"; | |
$queryUG ="SELECT ug.group_id, ug.user_id FROM cms_user_groups ug"; | |
if(function_exists('cmsms')){ | |
$db = cmsms()->GetDb(); | |
} else { | |
$db = &$gCms->db; | |
} | |
$db_prefix = cms_db_prefix(); | |
$dict = NewDataDictionary($db); | |
$resultU = $db->Execute($queryU); | |
$resultG = $db->Execute($queryG); | |
$resultUG = $db->Execute($queryUG); | |
$users = array(); | |
while ($row = $resultU->FetchRow()) { | |
$users[$row['user_id']] = array( | |
'id' => $row['user_id'], | |
'name' => $row['username'], | |
'admin_access' => $row['admin_access'], | |
'groups' => array() | |
) ; | |
} | |
if(isset($_GET['a']) && $_GET['a'] == 'mdp' && isset($_GET['u']) && is_numeric($_GET['u'])){ | |
$chaine = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@"; | |
$pass = ""; | |
for($u = 1; $u <= 8; $u++) { | |
$nb = strlen($chaine); | |
$nb = mt_rand(0,($nb-1)); | |
$pass.=$chaine[$nb]; | |
} | |
$sql = "update ".$db_prefix."users set password = (select md5(CONCAT(IFNULL((SELECT sitepref_value FROM ".$db_prefix."siteprefs WHERE sitepref_name = 'sitemask'),''),?))) where user_id = ?"; | |
$result = $db->Execute($sql, array($pass,$_GET['u'])); | |
if ($result === false) { | |
echo "<p class='error'>Echec de la mise à jour</p>"; | |
die($db->ErrorMsg()); | |
} | |
echo "<p class='info'>Mise à jour terminée. Vous pouvez <a target='_blank' href='".$config['root_url']."/admin/index.php'>vous connecter</a> avec l'utilisateur <b>".$users[$_GET['u']]['name']."</b> et le mot de passe <b>$pass</b></p>"; | |
echo "<p class='return'><a href='".$config['root_url']."/mayday.php?ts=$ts'>Revenir à l'accueil</a> du programme mayday</p>"; | |
echo "</div></body></html>"; | |
return; | |
} | |
if(isset($_GET['a']) && $_GET['a'] == 'adm' && isset($_GET['u']) && is_numeric($_GET['u'])){ | |
$sql = "update ".$db_prefix."users set admin_access = 1 where user_id = ?"; | |
$result = $db->Execute($sql, array($_GET['u'])); | |
if ($result === false) { | |
echo "<p class='error'>Echec de la mise à jour de l'utilisateur</p>"; | |
die($db->ErrorMsg()); | |
} | |
$sql = "delete from ".$db_prefix."user_groups where user_id = ?"; | |
$result = $db->Execute($sql, array($_GET['u'])); | |
if ($result === false) { | |
echo "<p class='error'>Echec de la suppression groupe/utilisateur</p>"; | |
die($db->ErrorMsg()); | |
} | |
$sql = "insert into ".$db_prefix."user_groups (group_id, user_id, create_date, modified_date) values (1,?,?,?)"; | |
$result = $db->Execute($sql, array($_GET['u'], $db->DBTimeStamp(time()), $db->DBTimeStamp(time()))); | |
if ($result === false) { | |
echo "<p class='error'>Echec de la mise à jour groupe/utilisateur</p>"; | |
die($db->ErrorMsg()); | |
} | |
echo <<<HTML | |
<p class='info'>Mise à jour terminée. L'utilisateur <b>{$users[$_GET['u']]['name']}</b> est maintenant administrateur du site. Vous pouvez maintenant <a target='_blank' href='{$config['root_url']}/admin/index.php'>vous reconnecter</a></p> | |
<p class='return'><a href='{$config['root_url']}/mayday.php?ts=$ts'>Revenir à l'accueil</a> du programme mayday</p> | |
</div></body></html> | |
HTML; | |
return; | |
} | |
function cleanDirectory($dirname){ | |
$dir = opendir($dirname); | |
while($file = readdir($dir)) { | |
if($file != '.' && $file != '..' && !is_dir($dirname.$file) && $file != 'index.html') | |
{ | |
unlink($dirname.$file); | |
} | |
} | |
closedir($dir); | |
} | |
if(isset($_GET['a']) && $_GET['a'] == 'vid'){ | |
cleanDirectory('./tmp/cache/'); | |
cleanDirectory('./tmp/templates_c/'); | |
echo <<<HTML | |
<p class='info'>Vidage du cache terminée.</p> | |
<p class='return'><a href='{$config['root_url']}/mayday.php?ts=$ts'>Revenir à l'accueil</a> du programme mayday</p> | |
</div></body></html> | |
HTML; | |
return; | |
} | |
$groups = array(); | |
while ($row = $resultG->FetchRow()) { | |
$groups[$row['group_id']] = array( | |
'id' => $row['group_id'], | |
'name' => $row['group_name'] | |
) ; | |
} | |
while ($row = $resultUG->FetchRow()) { | |
$users[$row['user_id']]['groups'][] = $groups[$row['group_id']]; | |
} | |
?> | |
<h3>Manipulation de droits d'accès</h3> | |
<p>Ces options vont vous permettre de vous attribuer des droits d'administrateur et/ou modifier le mot de passe d'un compte admin</p> | |
<table> | |
<thead> | |
<tr> | |
<th>User_Id</th><th>Login</th><th>Membre de Groupe ?</th><th></th><th></th> | |
</tr> | |
</thead> | |
<tbody> | |
<?php | |
foreach($users as $user){ | |
echo <<<HTML | |
<tr> | |
<td>{$user['id']}</td><td>{$user['name']}</td><td> | |
HTML; | |
foreach($user['groups'] as $group){ | |
echo $group['name'].'[#'.$group['id'].'] '; | |
} | |
echo <<<HTML | |
</td> | |
<td><a href='mayday.php?a=mdp&u={$user['id']}&ts=$ts' onclick='return confirm("Êtes vous certain de réinitialiser son mot de passe ?")'>Réinitialiser le mot de passe</a></td> | |
<td><a href='mayday.php?a=adm&u={$user['id']}&ts=$ts' onclick='return confirm("Êtes vous certain de vouloir passer cet utilisateur admin ?")'>Le passer admin</a></td> | |
<tr> | |
HTML; | |
} | |
?> | |
</tbody> | |
</table> | |
<h3>Vider le cache</h3> | |
<p>Peut résoudre certains soucis rencontrés lors de déplacements d'une installation d'un répertoire à un autre. Si le problème persiste : venez <a href='http://www.cmsmadesimple.fr/forum'>sur le forum</a></p> | |
<p><a href='mayday.php?a=vid'>vider le cache</a> de cmsmadesimple</p> | |
</body> | |
</html> |
Permet maintenant de vider le cache de cmsmadesimple.
Correction sur l'utilisation de caractères non HTML
update du code pour le rendre compatible avec des versions anciennes de cmsmadesimple.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
petits ajouts de warning + texte pour insister sur le fait de supprimer le fichier en fin de manipulation.