En un ataque de URL semántica , un cliente ajusta manualmente los parámetros de su solicitud manteniendo la sintaxis de la URL pero alterando su significado semántico . Este ataque se utiliza principalmente contra sitios web que utilizan CGI .
Un ataque similar que involucra las cookies del navegador web se conoce comúnmente como envenenamiento de cookies .
Ejemplo
Consideremos una aplicación de correo electrónico basada en la web donde los usuarios pueden restablecer su contraseña respondiendo correctamente a la pregunta de seguridad y recibirla en la dirección de correo electrónico que elijan. Tras responder correctamente a la pregunta, la página web mostrará un formulario donde podrán introducir su dirección de correo electrónico alternativa:
< form action = " resetpassword.php" method = "GET" > < input type = "hidden" name = "username" value = "user001" /> <p> Por favor, introduzca su dirección de correo electrónico alternativa: </p> < input type = "text" name = " altemail" /> <br /> < input type = " submit " value = " Enviar" / > </form>La página receptora, resetpassword.php, contiene toda la información necesaria para enviar la contraseña al nuevo correo electrónico. La variable oculta username contiene el valor user001, que es el nombre de usuario de la cuenta de correo electrónico.
Debido a que este formulario web utiliza el método de datos GET , cuando el usuario envía alternative@emailexample.com como la dirección de correo electrónico a la que desea que se envíe la contraseña, el usuario llega a la siguiente URL:
http://semanticurlattackexample.com/resetpassword.php?username=user001&altemail=alternative%40emailexample.com
Esta URL aparece en la barra de direcciones del navegador, de modo que el usuario puede identificar el nombre de usuario y la dirección de correo electrónico a través de los parámetros de la URL. El usuario puede optar por robar la dirección de correo electrónico de otra persona (usuario002) visitando la siguiente URL a modo de experimento:
http://semanticurlattackexample.com/resetpassword.php?username=user002&altemail=alternative%40emailexample.com
Si resetpassword.php acepta estos valores, es vulnerable a un ataque de URL semántica. Se generará una nueva contraseña para la dirección de correo electrónico del usuario002 y se enviará a alternative@emailexample.com, lo que provocará el robo de su cuenta de correo electrónico.
Un método para evitar ataques de URL semánticas es mediante el uso de variables de sesión . [ 1 ] Sin embargo, las variables de sesión pueden ser vulnerables a otros tipos de ataques, como el secuestro de sesión y el cross-site scripting .
Referencias
- ↑ Chris Shiflett. Seguridad esencial de PHP: Capítulo 2, Formularios y URL. Archivado el 14 de julio de 2011 en Wayback Machine.
Véase también
- Seguridad en Internet
- URL
- esbozos de informática