Inyección de código HTML y Javascript en el TITLE
Cada vez se van puliendo más las inyecciones de HTML o javascript en las webs, pero como no se suelen gestionar de una forma unificada acaban apareciendo de nuevo en lugares más escondidos, por ejemplo en el TITLE, pero siguen sin desaparecer.
Suponiendo una página como la siguiente:
<HTML> <HEAD> <TITLE><?php echo $_GET['query']; ?></TITLE> </HEAD> <BODY> Busqueda: <?php echo strip_tags($_GET['query']); ?> </BODY> </HTML>
Se esta, efectivamente, eliminando la posibilidad de inyectar HTML o javascript en el body pero dejando el TITLE sin filtrar. Si buscasemos lo siguiente:
ejemplo</title></head><body><img src=http://systemadmin.es/wp-content/uploads/2010/02/html-en-el-title.png>
El HTML resultante sería:
<HTML> <HEAD> <TITLE>ejemplo</title></head><body><img src=http://systemadmin.es/wp-content/uploads/2010/02/html-en-el-title.png></TITLE> </HEAD> <BODY> Busqueda: ejemplo </BODY> </HTML>
Con lo que lo que se inyecta en el TITLE se mostraría lo primero de todo como en el caso de la imagen de ejemplo. Una vez más, la inyección no solo trata de comillas y el uso de addslashes().
Para evitar este tipo de “descuidos” se debería tratar toda cadena proporcionada por el usuario desde un solo punto en el código y no ir “parcheando” el código por todos lados. Esto parece muy evidente, pero realmente cuesta encontrar aplicaciones que lo hagan así.
Relacionados
Imprimir

2. February 2010 at 11:54 am :
En security by default hoy ha coincidido con un caso de esto mismo que comento:
Ameriprise, líder de las finanzas…y del XSS
22. August 2010 at 6:41 pm :
alert(‘Hacked by Danny’);
23. August 2010 at 7:10 am :
Buen intento
27. March 2011 at 9:48 pm :
esque tambien como os pasais, esta gente de hoy en dia no es lo que era…
27. March 2011 at 9:49 pm :
pero como no muestra el no lo entiendo
28. March 2011 at 6:46 am :
“> HOLA!!
3. June 2011 at 2:20 am :
alert(‘Es vulnerable’)