VULNERABILIDADES DE APLICACIONES WEB: INYECCIÓN HTML

26.12.2017 07:38
Muy emparentada con el Cross-site scripting y muchas veces confundida con el mismo, la inyección HTML solo permite la inyección de ciertas etiquetas HTML. Cuando una aplicación no maneja adecuadamente los datos proporcionados por el usuario O POR EL NAVEGADOR, un atacante puede proporcionar un código HTML válido, normalmente mediante un valor de parámetro e inyectar su propio contenido en la página atacada. El lector puede imaginar las consecuencias de la inyección de una noticia falsa en un portal importante.
 
Esto es código vulnerable:
 
<html>
<body>
Bienvenido <?php echo $_GET["nombre"]; ?>!<br />
</body>
</html>
 
Y ésta es una posible inyección:
 
https://127.0.0.1/inyeccion-HTML/prueba.php?fname=<h1>Mensaje%20inyectado</h1><!--
 
¡CUIDADO! Esto también es código vulnerable, difícil de aprovechar pero vulnerable al fin:
 
<?php
echo $_SERVER['HTTP_USER_AGENT'];
?>
 
Y ésta es una forma de prevenir la inyección:
 
<?php
$agente = $_SERVER['HTTP_USER_AGENT'];
echo strip_tags($agente);
?>
 
aunque sigue permitiendo la inyección de texto sin formato HTML en un lugar dónde difícilmente se lo espera.