Hola amigos y amigas, hoy os quiero tratar de una mala praxis en la programación que genera la vulnerabilidad XSS(CROSS SITE SCRIPT).

XSS(CROSS SITE SCRIPT) es una falla en la seguridad de código fuente de una aplicación web, estas fallas de seguridad, generan agujeros en la misma que son usados por los hackers para inyectar códigos JavaScript e incluso VBScript, con el fin de modificar el sitio web, obtener las cookies para ganar acceso de administrador.

Existen 2 tipos de vertientes de XSS(CROSS SITE SCRIPT):

  • Directa : Esta es la variable persistente, su misión; añadir dentro del código fuente código malicioso con el fin de ganar el acceso al servidor y obtener su control. Ejmp: formulario de un blog para un comentario.

 

  • Indirecta : Esta es la variable reflejada, su misión; modificar los valores de las variables que se traspasan entre dos sitios diferentes, esto es muy peligroso por ejemplo a la hora del envió de una cookie, dado que si es modificada, la sesión puede otorgar al hacker permisos de administrador, lo que conlleva control del servidor. Ejmp: login de un formulario de validación.

Estás técnicas, son fácilmente inutilizadas con algo de pericia del programador y la función preg_match(), esta función evalúa los caracteres que se introducen dentro de una petición a un formulario, esta es la vertiente más común de ataque de XSS(CROSS SITE SCRIPT), de manera que si evitamos el uso de determinados caracteres, el uso de una sintaxis de script quedaría inhabilitada y la aplicación web securizada a estos ataques.

Un ejemplo de XSS(CROSS SITE SCRIPT)

xss.PNG

Un ejemplo de una función preg_match()

function validate_input($result) {
// avoid functions execution
return preg_match(‘/[a-z]+\s*\(/i’, $result) === 0;
}

Esta funcion bloquea los siguientes caracteres /[a-z]+\s*\(/i ; de tal modo que la inyección XSS(CROSS SITE SCRIPT) ya no es posible como tal.

 

Anuncios