F F F

Identificando XSS

Cross-Site Scripting (XSS)
- Tips : Usted pued utilizar un monton de metodos existentes en la web para explotar esta vulnerabilidad.

- Ejemplo Básico:
- Pedazo de código de test.php

———————————
<?php
$name=$_GET['name'];
print $name;
?>
———————————

El “input” no está filtrado, Un atacante puede ejecutar código javascript.
Ejemplo :

http://127.0.0.1/test.php?name=<script>alert(“XSS”)</script>

Un “popup” con un mensaje de  “XSS” aparecerá en pantalla. El código javascript es ejecutado con exito.

- Otro Ejemplo:

- Pedazo de código de test.php

——————————————-
<?php
$name=addslashes($_GET['name']);
print ‘<table name=”‘.$name.’”></table>’;
?>
——————————————-

No es un ejemplo avanzado, solo un poquito más complicado.

http://127.0.0.1/test.php?name=”><script>alert(String.fromCharCode(88,83,83))</script>

Qué con este vector?Nosotros pusimos ” porque necesitamos cerrar ” del atributo “name” de la tabla “table” y > para cerrar la “table”. Porque String.fromCharCode? Porque
queremos bypassear la funcion addslashes(). Inyeccion realizada con exito.

- Ejemplo Práctico:

- Pedazo de código de modules.php

—————————————————————————
if (isset($name)) {
……………….. etc…………….
} else {
die(“Le fichier modules/”.$name.”/”.$mod_file.”.php est inexistant”);
—————————————————————————

La variable “name” es inyectable, input no está filtrado, por eso podemos inyectar codigo javascript.
Ejemplo:

http://127.0.0.1/test.php?name=<script>alert(“XSS”)</script>

- Solución

Forma Simple : Usar las funciones htmlentities() o htmlspecialchars().
Ejemplo : $name=htmlentities($_GET['name']);
Otra Forma : Filtrar los caracteres especiales usados para xss (demasiados).
Otra:

$_GET = preg_replace(“|([^\w\s\'])|i”,”,$_GET);
$_POST = preg_replace(“|([^\w\s\'])|i”,”,$_POST);

La mejor forma es con el último método.

Andrés Gómez

Comments are closed.

Sobre el Blog

Fue creado para compartir conocimientos, técnicas y trucos para los webmasters y empresas que contratan nuestros servicios.

Clientes

Gobiernos, ministerios, bancas, aseguradoras, entidades financieras, estudios jurídicos, estudios contables, instituciones, hospitales, etc.

Servicios

Pentesting, auditorías de seguridad, auditorías de redes, adminitración de servidores, hosting, dominios, diseño web, desarrollo de software y más...

Socios De Negocios

- Security-Pentest
- Atenea Capacitaciones
- YouJoomla!