Leí este artículo enlace sobre el craqueo de la función php rand (). y me involucré con algunos problemas en los métodos de prueba mencionados en el artículo. Utilicé php 5.5.16 (versión Windows x64) para las pruebas.
t1.php:
<?php
include 'test.php';
$t = Token::gen(10);
echo $t;
echo "\n";
test.php:
<?php
class Token {
public static function gen($len = 5)
{
$token = '';
while($len--){
$choose = rand(0, 2);
if ($choose === 0)
$token .= chr(rand(ord('A'), ord('Z')));
else if($choose === 1)
$token .= chr(rand(ord('a'), ord('z')));
else
$token .= chr(rand(ord('0'), ord('9')));
}
return $token;
}
}
Generé algunos Tokens CSRF en una aplicación vulnerable de la siguiente manera:
> php.exe .\t1.php
308AXoL3zs
> php.exe .\t1.php
g18tZZHgv3
> php.exe .\t1.php
Chk7ir55g4
> php.exe .\t1.php
33oRvjqqYf
Tomé 308AXoL3zs y lo usé en el archivo wincrackseed.c. Edité ese archivo un poco. aquí mi archivo editado:
mi problema es cuando intenté descifrar la semilla usando este ataque, el ataque estuvo activo aproximadamente 2-3 horas, ¡pero nada coincidió! en mi computadora portátil se verificaron más de 34 millones de semillas en ese período de tiempo. pero en el artículo Sjoerd Langkemper dijo:
Esto llevará unos 10 minutos para la versión de Windows