NIS2 y DORA en vigor. EU AI Act es el próximo — reserva una demo

Test de Penetración Django: ORM Injection, Admin Security y Seguridad Python Enterprise

Django es el framework Python más maduro (2005+), particularmente usado en España para: portales del sector público (Cl@ve, Tu Cuenta), CMS universitarios, sistemas de booking enterprise. Las vulnerabilidades recientes incluyen CVE-2024-45230, CVE-2024-39614, CVE-2023-43665. Matproof Sentinel realiza pentests Django dirigidos con informe audit-ready desde 149 €.

Iniciar escaneo gratuito
MW
Escrito por Malte Wagenbach
Fundador de Matproof Security. Especializado en pruebas de penetración impulsadas por IA y cumplimiento UE (DORA, NIS2, ENS, ISO 27001).
Última revisión: 17 de mayo de 2026

Por qué Django requiere pentest específico

Django es el framework Python más maduro, particularmente usado en España para: portales públicos (Cl@ve, sistemas Universidad), CMS, sistemas booking. Su madurez es una ventaja (security by default, ORM type-safe), pero introduce superficie d'ataque específica: Django Admin expuesto es vector #1, SECRET_KEY leak via DEBUG=True causa session forgery, ORM permite raw queries con SQL injection. CVE recientes ilustran riesgos. Para organizaciones españolas con Django, un pentest documentado es esencial para RGPD Art. 32 compliance.

  • CVE-2024-45230 (Django < 4.2.16/5.0.9): DoS via strip_tags template filter.
  • CVE-2024-39614 (Django < 4.2.14/5.0.7): denylist bypass en safestring filter.
  • CVE-2023-43665 (Django < 4.2.6): DoS via truncatechars_html template filter.
  • Django Admin enumeration: /admin/login/ permite user enumeration via timing.
  • SECRET_KEY leak: DEBUG=True en producción expone SECRET_KEY.
  • Django Templates SSTI: custom template tags con eval/exec.
  • Para aplicaciones españolas PA (Cl@ve, Tu Cuenta), pentest Django es prerequisite ENS compliance.

Qué testeamos específicamente en una aplicación Django

  • CVE detection: Django < 4.2.16/5.0.9 (CVE-2024-45230), < 4.2.14/5.0.7, < 4.2.6.
  • Django Admin: enumeración usuarios via timing, brute-force protection, 2FA, IP whitelist.
  • SECRET_KEY exposure: DEBUG=True detection en producción.
  • ORM injection: raw() queries con concatenation, extra() con select, RawSQL.
  • Template SSTI: custom template tags con eval/exec, safestring bypass.
  • Django REST Framework: permissions por ViewSet, serializer fields exposed.
  • Authentication: django.contrib.auth con password hasher weak.
  • CSRF: csrf_exempt overuse, CSRF token en JSON API sin Origin header validation.
  • File upload: validación MIME type lado servidor, path traversal en upload_to.
  • Composition Analysis: requirements.txt + Pipfile.lock para CVE.

Ejemplo de hallazgo

Crítico

Django DEBUG=True en producción — SECRET_KEY leak via página error 500

La aplicación Django tiene DEBUG=True en producción. La página 500 con DEBUG=True expone: settings completo incluido SECRET_KEY, configuración DATABASE con credentials, EMAIL_HOST_PASSWORD; stack trace con paths; ambiente Python; local variables. SECRET_KEY permite forgery de session cookie, signed URLs, CSRF token. Test permitió: forgery session cookie cualquier usuario, generar password reset URL cualquier email.

Corrección: Acción inmediata: establecer DEBUG=False en producción:\n\nDEBUG = os.environ.get('DJANGO_DEBUG', 'False').lower() == 'true'\nALLOWED_HOSTS = ['matproof.com', 'www.matproof.com']\n\nAcciones complementarias: rotar inmediatamente SECRET_KEY (force re-login todos los usuarios); rotar DATABASE_PASSWORD, EMAIL_HOST_PASSWORD; configurar error reporting via Sentry/Rollbar; auditoría access log últimos 90 días.

Referencia: CWE-489 · CWE-200 · OWASP A05:2021 · Django Security Documentation

Pentest Django: opciones comparadas

Escaneo gratuitoMatproof SentinelConsultoría tradicional
Motor de escaneo automatizado✓ (vista previa 3 min)✓ Escaneo completo✗ Solo manual
Cobertura OWASP Top 10Parcial✓ Completa✓ Completa
Evidencia proof-of-exploit✓ Por hallazgo✓ Por hallazgo
Mapeo normativo (DORA/NIS2/ISO 27001)✓ Automatizado✓ Manual
Informe PDF listo para auditoría✓ Inmediato✓ Entrega 2–4 semanas
Escaneos continuos / recurrentes✓ Por despliegue✗ Encargo anual
Tiempo hasta el primer resultado~3 min~30 min escaneo completo2–4 semanas
Precio€0Desde €149€8.000–€25.000
Revisión de código fuente (SAST)✓ Plan Growth✓ En alcance
Pruebas de API (REST/GraphQL)✓ Automatizado✓ Manual

Paquetes Pentest Django

Escaneo único
€149 pago único
  • 1 escaneo pentest completo
  • Hallazgos priorizados por IA con CVSS 3.1
  • Proof-of-exploit por hallazgo
  • Informe PDF listo para auditoría
  • Mapeo normativo (DORA, NIS2, ISO 27001)
Comprar escaneo único
Recomendado
Starter
€299 / mes
  • Escaneos ilimitados (hasta 3 dominios)
  • Monitorización continua
  • Integración CI/CD (GitHub, GitLab)
  • Todos los mapeos normativos
  • Soporte prioritario
Iniciar Starter
Growth
€799 / mes
  • Escaneos + dominios ilimitados
  • Pruebas autenticadas / White-Box
  • Pruebas de API e infraestructura cloud
  • Account manager de seguridad dedicado
  • SLA de respuesta en 24h
Contactar para Growth

Preguntas frecuentes sobre el pentest Django

¿Cómo testean Django Admin específicamente?

Django Admin es target #1. Testeamos: enumeración usuarios via timing, brute-force protection (django-axes), 2FA enforcement, IP whitelist, audit log accesos admin.

¿Testean también Django REST Framework / Django Ninja / Django Async?

Sí. DRF tiene specific permission audit. Django Ninja (FastAPI-style) comparte riesgos FastAPI. Django Async views requieren race conditions testing específicas.

¿Cómo gestionan Django con celery / Redis background tasks?

Celery tasks con user input pueden code injection. Testeamos: pickle serialización (anti-pattern), task chain con shared state, Redis exposure pública.

Para aplicaciones Django PA españolas (Cl@ve, Tu Cuenta), ¿testean la integración?

Sí. Cl@ve OAuth2 flow tiene specific validation requirements. Tu Cuenta integration. Testeamos ambos flows para misconfiguraciones.

¿Cuánto tiempo requiere un pentest Django completo?

60-90 minutos para aplicación Django típica. Para multi-tenant complejas: 2-3 horas.

¿El informe es aceptado para ENS / AEPD compliance en España?

Sí. Mapeo explícito RGPD Art. 32 + LOPDGDD + ENS Real Decreto 311/2022. Para aplicaciones Cl@ve/Tu Cuenta, cubre security questionnaire ENS.

Temas relacionados

Profundiza — artículos relacionados del blog

Proteja su aplicación Django ahora

Primer escaneo en 3 minutos, pentest Django completo en 60-90 minutos. Informe audit-ready RGPD / LOPDGDD / ENS desde 149 €.

Iniciar escaneo gratuito