2012-08-05 31 views
5

Duplicar posible:
How to conduct buffer overflow in PHP/Python?¿Es posible el desbordamiento de búfer de PHP?

estaba leyendo this tutorial, cuando entré en esto:

Un ataque de desbordamiento de búfer pretende desbordar el buffer de asignación de memoria dentro de su Aplicación PHP o, más en serio, en Apache o el sistema operativo subyacente. Recuerde que puede estar utilizando un lenguaje de alto nivel como PHP para codificar sus aplicaciones web, pero al final del día, está llamando a C (en el caso de Apache) para que trabaje. Y C, como la mayoría de los lenguajes de bajo nivel, tiene reglas estrictas sobre la asignación de memoria ...

¿Qué? Sabía que PHP estaba bien verificado y que el desbordamiento de buffer no era posible. ¿Debo verificar la longitud de entrada del usuario para evitar un flujo de datos demasiado grande? Muchas gracias

Respuesta

8

Sí que es y en el current change log ha habido 15 correcciones de errores relacionados con ella:

  • Corregido un fallo # 61807 desbordamiento de búfer en apache_request_headers, CVE-2012-2329.
  • Desbordamiento de búfer fijo en overlog salt en crypt(). (Clément LECIGNE, Stas
  • Solución de error # 60.965 (desbordamiento del búfer en htmlspecialchars/entidades con $ doble = false).
  • fijo desbordamiento de pila en socket_connect(). (CVE-2011-1938) Encontrado por Mateusz Kocielski, Marek Kroemeke y Filip Palian. (Felipe)
  • Fijas posibles desbordamientos de búfer en mysqlnd_list_fields, mysqlnd_change_user. (Andrey)
  • Corregido posible desbordamientos de búfer al tratar paquetes de error en mysqlnd. Informado por Stefan Esser. (Andrey)
  • fijo un posible desbordamiento del búfer del filtro de dechunking. Reportado por Stefan Esser. (Pierre)
  • Error reparado # 42862 (caída del kit de herramientas IMAP: rfc822.c desbordamiento de rutina del búfer de rutina). (Se corrigió CVE-2008-2829) (Dmitry)
  • Se corrigió el posible desbordamiento del búfer de pila en FastCGI SAPI. (Andrei Nigmatulin)
  • Solucionado el posible desencadenamiento de desbordamientos de búfer dentro de las implementaciones glibc de las funciones fnmatch(), setlocale() y glob(). Reportado por Laurent Gaffie.
  • Error reparado # 42222 (posible desbordamiento de búfer en php_openssl_make_REQ). (Pierre)
  • Se arregló un desbordamiento de búfer de activación remotamente dentro de make_http_soap_request(). (Ilia)
  • Se arregló un desbordamiento de búfer dentro de user_filter_factory_create(). (Ilia)
  • Se corrigió un desbordamiento de búfer de activación remota en la biblioteca libxmlrpc incluida. (Stas)
+0

Entonces, ¿podría verificar el tamaño de entrada de todos los usuarios para evitar el desbordamiento del búfer? –

+0

@ user1294101 No, no lo haría. Si supiera de una extensión o código defectuoso, enviaría el informe de error. Debe verificar el tamaño de la entrada del usuario como una validación normal. – Esailija

+0

Gracias, pero ¿por qué no revisar el tamaño de entrada no es seguro? ¿Qué puede hacer una entrada demasiado grande? –

2

Por supuesto, puede suceder, cuando se llama a las funciones que realmente están escritas en C/C++ (que habría todas las funciones básicas).

Creo que las funciones básicas que proporciona PHP se han comprobado para detectar errores como el desbordamiento del búfer, pero no se puede saber con certeza cuando se usan extensiones personalizadas.

+0

Entonces, ¿está comprobando el tamaño de entrada de cada usuario de una manera segura? –

+0

No, no lo haría. Si se produce el desbordamiento del búfer, se trata de un error de PHP y debe corregirse. – usoban

+0

Gracias, ¿es una inundación de datos (pretendemos que alguien POST 50 mb de datos) un problema? –

0

Sure it 'possible.' La pregunta que me interesaría más es dónde crees que es el vector de ataque para hacer esto (un error de php enviado, etc.). Además, creo que este es un objetivo mucho menos probable para explotar que otros problemas de seguridad.

+0

Me gustaría saber si es una buena idea verificar el tamaño de entrada de todos los usuarios. –

Cuestiones relacionadas