← Volver al listado de tecnologías
Natas Nivel 8 - Reversión de Encoding
Natas Nivel 8 - Reversión de Encoding
Objetivo
Similar al nivel 6, hay un formulario de “secret”. Pero esta vez el código muestra cómo se codificó el secret.
Análisis del Código
<?php
$encodedSecret = "3d3d516343746d4d6d6c315669563362";
function encodeSecret($secret) {
return bin2hex(strrev(base64_encode($secret)));
}
if(array_key_exists("submit", $_POST)) {
if(encodeSecret($_POST['secret']) == $encodedSecret) {
print "Access granted...";
}
}
?>
La Función de Codificación
bin2hex(strrev(base64_encode($secret)))
Orden de operaciones:
base64_encode()- Codifica en Base64strrev()- Invierte el stringbin2hex()- Convierte a hexadecimal
Solución: Revertir el Proceso
Para decodificar, hacemos lo opuesto en orden inverso:
base64_decode(strrev(hex2bin($encodedSecret)))
Paso 1: hex2bin
Convierte hexadecimal a binario.
Paso 2: strrev
Invierte el string.
Paso 3: base64_decode
Decodifica Base64.
Implementación
PHP
<?php
$encoded = "3d3d516343746d4d6d6c315669563362";
echo base64_decode(strrev(hex2bin($encoded)));
?>
Python
import base64
import codecs
encoded = "3d3d516343746d4d6d6c315669563362"
# hex → bytes
step1 = codecs.decode(encoded, 'hex')
# reverse
step2 = step1[::-1]
# base64 decode
result = base64.b64decode(step2)
print(result.decode())
Bash
echo "3d3d516343746d4d6d6c315669563362" | xxd -r -p | rev | base64 -d
CyberChef
Usa la receta:
- From Hex
- Reverse
- From Base64
Teoría: Encoding vs Encryption
| Característica | Encoding | Encryption |
|---|---|---|
| Propósito | Transformar datos | Proteger datos |
| Clave requerida | No | Sí |
| Reversible | Siempre | Solo con la clave |
| Seguridad | Ninguna | Alta (si es bueno) |
Encodings Comunes
| Encoding | Ejemplo |
|---|---|
| Base64 | SGVsbG8= |
| Hex | 48656c6c6f |
| URL | Hello%20World |
| HTML | <div> |
Por Qué No Es Seguro
Este código usa “security through obscurity”:
- El encoding es reversible
- El algoritmo está expuesto
- No hay clave secreta
Conceptos Aprendidos
| Concepto | Descripción |
|---|---|
| Encoding reversal | Revertir transformaciones |
| bin2hex/hex2bin | Conversión hexadecimal |
| strrev | Inversión de strings |
| Base64 | Encoding común |
Siguiente Nivel
- URL: http://natas9.natas.labs.overthewire.org
- Usuario: natas9