Test Foro de elhacker.net SMF 2.1

Seguridad Informática => Bugs y Exploits => Hacking => Nivel Web => Mensaje iniciado por: ~ Yoya ~ en 23 Diciembre 2010, 22:32 PM

Título: [Duda] ReDos(Regular expression Denial of Service) que causa en PHP
Publicado por: ~ Yoya ~ en 23 Diciembre 2010, 22:32 PM
Buenas, cuando intento causar Dos en javascript mediante expresiones regulares causa un DoS
Código (javascript) [Seleccionar]
var a = '11111111111111111111111111111111111a';
if(/^(\d+)+$/.test(a)){alert(1);}


Pero en PHP no causa Dos y estoy tratando de reproducir lo que sirdarckcat escribió y nada
Cita de: http://foro.elhacker.net/nivel_web/hackea_a_elhackernet_finalizado_ganador_yasion-t275475.0.html;msg1357128#msg1357128en PHP, PREG va a suspender la ejecucion despues de N iteraciones y alterara la memoria donde esta almacenada la variable de tal forma, que se borraran los ultimos 3 bytes dentro de esta.

Por defecto en PHP el limite de marcha atras es de 100,000
pcre.backtrack_limit (http://www.php.net/manual/es/pcre.configuration.php#ini.pcre.backtrack-limit)

Código (php) [Seleccionar]
<?php

$a 
str_repeat(1,16);
$a .= 'a';

echo 
"La longitud es de ".strlen($a). "<br>";
if(
preg_match("/^(\d+)+$/",$a));
echo 
"La longitud es de ".strlen($a). "<br>";

if (
preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) {
    echo 
'Se ah exedido el limite<br>';
}
?>


Salida:
La longitud es de 17
La longitud es de 17
Se ah exedido el limite


La longitud de la variable no se artera ni nada similar...
Título: Re: [Duda] ReDos(Regular expression Denial of Service) que causa en PHP
Publicado por: sirdarckcat en 29 Diciembre 2010, 00:28 AM
era algo especifico de la expresion regular que hacia que php borrara esos ultimos caracteres.. habria que debugear el estado en el que se suspende otra vez.
Título: Re: [Duda] ReDos(Regular expression Denial of Service) que causa en PHP
Publicado por: ~ Yoya ~ en 3 Enero 2011, 02:52 AM
Bueno algo eh leído en la documentación oficial de PCRE, de momento me conformo con lo que eh leído...

Saludos.
Título: Re: [Duda] ReDos(Regular expression Denial of Service) que causa en PHP
Publicado por: Castg! en 10 Enero 2011, 01:53 AM
yoya, estas leyendo algo en especial sobre el tema? tenes algo por ahi de preferencia en español?
yo estuve leyendo lo de owasp, pero es un tema jodido
Título: Re: [Duda] ReDos(Regular expression Denial of Service) que causa en PHP
Publicado por: ~ Yoya ~ en 10 Enero 2011, 22:12 PM
http://n3t-datagrams.net/papers/reDOS-n3t-datagrams-by-SH4V.pdf

Esta en español y muy buen explicado, te recomiendo que tomes una hoja y lápiz para entenderlo.

Si tienes dudas ps posteas en este mismo POST.