En un ataque URL semántica , un cliente ajusta manualmente los parámetros de su solicitud mediante el mantenimiento de la URL 's sintaxis , pero alterando su semántica significado. Este ataque se utiliza principalmente contra sitios web impulsados por CGI .
Un ataque similar que involucra cookies del navegador web se conoce comúnmente como envenenamiento de cookies .
Ejemplo
Considere 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 permite a los usuarios enviar la contraseña a la dirección de correo electrónico de su elección. Después de responder correctamente a la pregunta de seguridad, la página web llegará al siguiente formulario web donde los usuarios pueden ingresar su dirección de correo electrónico alternativa:
< form action = "resetpassword.php" method = "GET" > < input type = "hidden" name = "username" value = "user001" /> < p > Ingrese su dirección de correo electrónico alternativa: p > < entrada de tipo = "texto" nombre = "altemail" /> < br /> < entrada de tipo = "submit" valor = "Enviar" /> forma >
La página de recepción, resetpassword.php, tiene toda la información que necesita para enviar la contraseña al nuevo correo electrónico. El nombre de usuario de la variable oculta 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 [email protected] 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 ubicación del navegador, por lo 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 decidir robar la dirección de correo electrónico de otras personas (user002) visitando la siguiente URL como un 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. La nueva contraseña de la dirección de correo electrónico de user002 se generará y se enviará a [email protected], lo que provocará el robo de la cuenta de correo electrónico de user002.
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 sesiones y las secuencias de comandos entre sitios .