Jour 16 • À la recherche du lien perdu

Cette nouvelle semaine a commencé avec de nouveaux objectifs, qui tombaient à pic, car le document que j’avais rédigé sur les recommandations de sécurité pour le développement d’applications web est en train d’être relu par A., nous n’avons toujours pas reçu de nouveaux codes sources pour y jeter un coup d’œil…

Il s’agit de faire des recherches pour trouver des logiciels ou scripts open-source permettant d’analyser le code source d’une application PHP.
Parmi ceux trouvés1, il y en a un qui me résiste encore pour le télécharger : Pixy
Le script a été conçu par des membres d’une université en Autriche, et l’ancien site du projet, facilement trouvable, renvoie vers le nouveau site, qui lui est injoignable…

J’ai tenté vainement jusqu’à présent de trouver un autre site sur lequel trouver le script. Peut-être que j’aurais plus de chance demain !

Voici une courte liste de ce qui a retenu mon attention jusqu’à présent :

  • Pixy : on va attendre de trouver un lien de téléchargement valide :/
  • Graudit2 : tout en ligne de commande, mais a du mal avec les framework
  • Rips Scanner : il suffit de copier les fichiers php dans un répertoire web, et on peu lancer les scans. Ne supporte pas pour l’instant PHP orienté objet. C’est bien dommage, car la solution s’annonçait intéressante !
  • SonarQube : ça l’air d’une grosse usine à gaz, et c’est nativement plus pour Java.

Sinon, il fait chaud. Très chaud. Et même si le bâtiment est en général très frais, ça commence à ne plus devenir tenable…


  1. Certains grâce au site du département sécurité CERN, le même qui m’avait permis de découvrir l’analogie mot de passe et brosse à dents

  2. Contraction de grep et de Audit 

Jour 8 • Un peu de code source

La journée a commencé avec deux voitures incendiées : en arrivant nous avons pu voir que deux voitures de fonction utilisées par la collectivité locale étaient en cendre. Une personne de la police scientifique était présente et s’adonnait à des prélèvements, photos, etc pour tenter de déterminer la cause. A priori, ce ne serait pas volontaire.

Voitures brûlées

La suite du programme a été de tester une application web1 permettant de gérer le recyclage de gros déchets.
P. s’est rapidement aperçu que les champs des formulaires n’étaient aucunement contrôlés : bonjour les failles XSS. D’autre part, l’envoi de fichiers n’était pas non plus sécurisé : nous avons pu envoyer un fichier PHP et l’exécuter. Et enfin les commandes systèmes exec, shell_exec et system n’étaient pas désactivées, ce qui nous a permis d’avoir la main mise sur le serveur…Capture faille exploitée par script PHPL’après-midi a été consacré à la recherche des lignes problématiques dans le code source que B. a pu nous fournir. Les développeurs ont utilisés le framework Zend pour leur application. Le problème, c’est que Zend n’échappe les caractères par défaut lors de réception de données2. Il faut donc qu’à chaque ligne où la méthode de Zend pour récupérer une requête est utilisée échapper les caractères avec la fonction htmlspecialchars3.
Sublime Text a su me fournir rapidement toutes les lignes à corriger. Reste maintenant à pouvoir modifier le code source du projet en intégration…


  1. Encore en développement, sur un serveur d’intégration 

  2. Données reçues en GET ou en POST 

  3. L’application est en effet codée en PHP