sábado, 19 de octubre de 2013

PHP session_start: revelando información

Bien es conocida la función de inicio de sesión session_start de PHP, pero no tan conocida es una ligera peculiaridad capaz de revelarnos rutas sensibles al generar avisos por pantalla.

La idea es sencilla, cambiar el valor de la cookie que hace la función de identificador de sesión (por defecto PHPSESSID ) a uno no admitido por la función session_start, y si se dan las condiciones (error_reporting) el error resultante será parecido al siguiente:

Warning: session_start() [function.session-start]: The session id is too long or contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,' in /secret/path on line 0
 ¿Solución? No reportar los errores al usuario y/o silenciar la función anteponiendo una arroba:

@session_start();
A modo de anécdota, y apoyándome en el buscador Google, automaticé la idea anterior con un araña (no de las que pican, chiste malo xd) para localizar páginas propensas a ello y hubo algún que otro resultado:



No hay comentarios:

Publicar un comentario en la entrada