Skip to content

z3rObyte/CSWSH-lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CSWSH Lab

Laboratorio vulnerable a Cross-Site WebSocket Hijacking (CSWSH) inspirado en una aplicación bancaria.

public

Setup

Requisitos previos

  • Linux
sudo apt update
sudo apt install nodejs npm libnss3-tools 
sudo apt install mkcert
npm install --global http-server
  • Windows

Instalación

git clone https://github.com/z3robyte/CSWSH-lab
cd CSWSH-lab
npm install

Para que sea posible la vulnerabilidad en este lab, el servidor local debe usar HTTPS, debido a que las cookies tienen que tener el atributo SameSite=None, y por requerimiento de este, el atributo secure. Más info aquí.

A continuación veremos como generar e instalar los certificados necesarios ello:

mkdir certificates
cd certificates
mkcert install # si da problemas, ejecutar como admin o root
mkcert localhost

Run it!

  • Para levantar la aplicación:
node app.js
# https://localhost:3000

Hay 2 usuarios, cuyas credenciales son: victim:pass123 y attacker:haxxor1

  • Para levantar el servidor del atacante:
cd exploit
http-server -S -C "../certificates/localhost.pem" -K "../certificates/localhost-key.pem"
# https://localhost:8080

Acordarse acceder a los servidores por HTTPS

Write Up

La aplicación web usa websockets para realizar transacciones de dinero ficticio entre usuarios. Sin embargo, el handshake del websocket depende únicamente de la cookie de sesión para establecerse (la cual tiene sameSite=None), por lo que podemos crear un sitio malicioso para que cuando una víctima lo visite se establezca una conexión websocket de forma silenciosa con javascript y nos enviemos dinero a nuestra cuenta.

Este ataque es parecido a un CSRF pero aplicado a los websockets.

Aquí tienes un video mostrando la explotación de la vulnerabilidad (haz click en la imagen):

Video

Donaciones

Si este proyecto te ha ayudado a aprender algo, considera aportar tu granito de arena para hacer más labs como este.

"Buy Me A Coffee"

About

Laboratorio para aprender y explotar la vulnerabilidad Cross-Site WebSocket Hijacking

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published