NIVEL: INTERMEDIO
OP: SECURE DEV
ID EXPEDIENTE: #AUDIT-PY-99X
[ INFORME DE INTELIGENCIA ]
Un desarrollador descontento (Insider Threat) fue despedido recientemente. Sospechamos que introdujo una "Bomba Lógica" (Backdoor) en el script de mantenimiento automatizado del servidor antes de irse.
Tu misión es auditar el código fuente, localizar la vulnerabilidad que permite la ejecución remota de comandos (RCE) y extraer la clave de acceso que el atacante dejó ofuscada.
Un desarrollador descontento (Insider Threat) fue despedido recientemente. Sospechamos que introdujo una "Bomba Lógica" (Backdoor) en el script de mantenimiento automatizado del servidor antes de irse.
Tu misión es auditar el código fuente, localizar la vulnerabilidad que permite la ejecución remota de comandos (RCE) y extraer la clave de acceso que el atacante dejó ofuscada.
Evidencia: task_runner.py
~/repo/scripts/task_runner.py
Python 3.9
import os
import json
import base64
def process_maintenance_task(task_payload):
"""
Procesa las tareas de mantenimiento enviadas por el dashboard interno. """
try:
task = json.loads(task_payload)
task_name = task.get("name", "unknown")
# Validación de seguridad estándar
if task_name == "backup":
os.system("tar -czvf /backup/sys.tar.gz /var/www/")
return "Backup complete"
# Mantenimiento de logs
elif task_name == "clear_logs":
os.system("rm -rf /var/log/temp/*")
return "Logs cleared"
# --- DEPRECATED OVERRIDE MODULE ---
elif task_name == "system_override_99":
# TODO: Eliminar en la próxima versión. Dejado para debug.
secret_key = "RkxBR3tweXRob25fZXZhbF9pc19ldmlsXzk5eH0="
if task.get("auth") == base64.b64decode(secret_key).decode('utf-8'):
# Peligro: Ejecución dinámica de código introducido por el usuario
eval(task.get("debug_cmd"))
except Exception as e:
return f"Error: {e}"
Identifica la ofuscación y decodifica la clave. Luego abre la terminal e introduce:
submit OP-SECURE-DEV FLAG{...}
submit OP-SECURE-DEV FLAG{...}