← Volver al listado de tecnologías
Bandit Nivel 10→11 - Decodificación Base64
Bandit Nivel 10→11 - Decodificación Base64
Objetivo
La contraseña está en data.txt, codificada en Base64.
Teoría: ¿Qué es Base64?
Base64 es un sistema de codificación que representa datos binarios usando solo 64 caracteres ASCII imprimibles.
¿Por qué existe?
Algunos sistemas (como email) solo pueden transmitir texto. Base64 permite enviar archivos binarios (imágenes, PDFs) convirtiéndolos a texto.
Alfabeto Base64
A-Z (26) + a-z (26) + 0-9 (10) + +/ (2) = 64 caracteres
Y = como padding al final.
Ejemplo Visual
Texto: "Hola"
Binario: 01001000 01101111 01101100 01100001
Base64: SG9sYQ==
Características
| Aspecto | Detalle |
|---|---|
| Expansión | ~33% más grande que el original |
| Padding | = o == al final |
| Seguridad | NO es cifrado, es solo codificación |
El Comando base64
Decodificar
base64 -d archivo.txt
# o
echo "dGV4dG8=" | base64 -d
Codificar
echo "texto" | base64
# Salida: dGV4dG8K
base64 archivo.bin > archivo.b64
Solución
base64 -d data.txt
O:
cat data.txt | base64 -d
Usos Comunes de Base64
En URLs (Data URIs)
<img src="data:image/png;base64,iVBORw0KGgo...">
En APIs y Tokens
# Token JWT (3 partes en Base64)
eyJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiSm9obiJ9.signature
# Autenticación HTTP Basic
Authorization: Basic dXNlcjpwYXNz
# (user:pass en Base64)
En Configuraciones
# Kubernetes Secrets
apiVersion: v1
kind: Secret
data:
password: cGFzc3dvcmQxMjM= # password123
¡Base64 NO es Seguro!
Es trivial decodificar:
echo "cGFzc3dvcmQxMjM=" | base64 -d
# password123
Nunca uses Base64 para ocultar información sensible. Es solo codificación, no cifrado.
Variantes de Base64
| Variante | Diferencia |
|---|---|
| Standard | Usa + y / |
| URL-safe | Usa - y _ (evita caracteres problemáticos en URLs) |
| MIME | Líneas de 76 caracteres con saltos |
# URL-safe en algunos sistemas
base64 -w 0 archivo # Sin saltos de línea
Identificar Base64
Pistas de que algo es Base64:
- Solo caracteres
A-Za-z0-9+/= - Termina en
=o== - Longitud múltiplo de 4
Comandos Aprendidos
| Comando | Descripción |
|---|---|
base64 -d | Decodificar Base64 |
base64 | Codificar a Base64 |
base64 -w 0 | Sin saltos de línea |
Conexión al Siguiente Nivel
ssh [email protected] -p 2220