Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: boxccs en 20 Mayo 2014, 02:54 am



Título: Como hackear este contador?
Publicado por: boxccs en 20 Mayo 2014, 02:54 am
Hola muy buenas tardes,

Estoy tratando de cambiar el número de este contador a cero como un ejercicio de la universidad pero por mas que intento no logro encontrar el error, alguien lo ve ?

<?

$file = fopen ('count.txt', 'r+');
$views = intval(fread($file, 1024));
echo $views;
ftruncate ($file, 0);
rewind($file);
//sleep(1); //here to *help* trigger the problem
fwrite ($file, $views + 1);
fclose ($file);

?>


Título: Re: Como hackear este contador?
Publicado por: El Benjo en 20 Mayo 2014, 23:05 pm
El problema es que intentas escribir en un archivo que has abierto para lectura. Intenta cerrando el archivo después de que lees su contenido y ábrelo nuevamente para escritura.


Título: Re: Como hackear este contador?
Publicado por: boxccs en 21 Mayo 2014, 01:29 am
Hola gracias por la respuesta.

Creo que finalmente halle la solución, cuando se hacen dos peticiones muy rápidas a la página que contiene el script, el contador se restea (sin importar la cuenta que lleve) y se hace cero.

Si se habilita el Sleep que esta comentado y se hacen dos peticiones muy rápidas, en la primera se ejecuta hasta la cuarta línea que trunca el archivo, evitando que la sumatoria de views+1 se haga antes de hacer la segunda petición. Luego en la segunda carga, el archivo se lee en blanco y se muestra cero por la función de intval