Archives du mot-clé PHP

En PHP md5(‘240610708’) == md5(‘QNKCDZO’)

Via HN :

La raison de cette égalité qui semble surprenant est en réalité dû au fait que les hashs de ces chaines respectives commencent par « 0e » et sont suivies uniquement par des chiffres qui est une forme de décrire un float.
Au final PHP converti les hashs résultants en float et comme les deux valeurs sont très proches de zéro elles sont considérées égales…

On peut imaginer qu’un certain nombre d’applis web effectuent des comparaisons de ce type et permettraient alors à des attaquants de tester un même mdp pour chaque account en espérant tomber sur un hash avec ces caractéristiques.
Qui plus est ça fonctionne bien sûr avec n’importe qu’elle fonction de hashage puisque le problème vient du parseur PHP.
Pour palier à ce problème il faut utiliser l’opérateur === au lieu de ==.

PHP : bypasser disable_functions

A lire sur rdot.org (RU) :

Comment appeler system() ou passthru() depuis un script PHP quand ces fonctions ont été bloquées via la directive disable_functions ?
L’astuce utilisée dans l’article est de réécrire dans la mémoire du processus PHP une adresse de la PLT (ex: open@plt) pour l’écraser par une fonction de la libc comme system. Après un appel à readfile() permet d’exécuter un fichier au lieu de le lire.
Une ruse de sioux :p

Une backdoor dans un package PhpMyAdmin

Via ArsTechnica :

Des pirates sont semble-t-il parvenus à pénétrer l’un des serveurs miroir de SourceForge afin de corrompre une archive zip du logiciel PhpMyAdmin.
Il ont placé une backdoor très succincte dans un script PHP dans cette archive qui exécute des commandes via eval().

Les dégâts sont limités car le serveur a été rapidement éloigné du réseau SourceForge et seulement 400 personnes environ auraient téléchargé le paquet en question.

MetaSploit a rapidement écrit un module pour son framework.

Pour le moment on ne connait pas la technique utilisé par les hackers pour s’introduire sur le serveur basé en Corée.

Un patch pour la faille PHP-CGI

Une faille a été découverte dans PHP-CGI par Eindbazen.
Elle permet entre autres d’obtenir le code source d’un script PHP sur un serveur vulnérable en passant simplement en argument -s (par exemple page.php?-s )

Derrière, ce qu’il se passe, c’est que ces arguments sont directement passés à l’exécutable php-cgi… Or en jouant sur certains paramètres (et on peut en passer un bon paquet), on peut parvenir à faire exécuter du code PHP de son choix sur le serveur comme dans le module Metasploit.

L’équipe PHP avait tardé à fournier un patch fonctionnel, une protection via htaccess (réécriture d’URL) permettait de bloquer les attaques.

Il semble qu’un patch effectif ait finalement fait son apparition… A vos mises à jour !

PHP : Update FAIL

PHP s’est mis à jour le 18 aout pour la version 5.3.7.

Mais le 22 aout, un message indique aux utilisateurs que c’est important de ne pas utiliser cette mise à jour.
La raison ? Un énorme bug dans l’implémentation de la fonction crypt() qui fait que si un salt est utilisé, seul se salt est retourné par crypt(), c’est à dire que le mot de passe de l’utilisateur n’est pas pris en compte…

Du coup si vous essayez de vous connecter sur un site qui a fait l’upgrade, le hash calculé ne correspondra pas au hash dans la BD et vous resterez à la porte (comme tout le monde) :p
Quand à ceux qui s’enregistreraient à ce moment là… tout le monde accédera à leur compte (en mettant n’importe quel pass) jusqu’au prochain upgrade qui fixera ce bug (ou le login sera impossible :D)

#LOL