
MagnoSec Blog
Inyección SQL en Oracle se Convierte en Ejecución como SYSTEM en Windows: El Ataque que Une Base de Datos y Sistema Operativo
De la inyección SQL al control total del servidor: el ataque que cruza la frontera entre base de datos y sistema operativo
La inyección SQL es la vulnerabilidad web más antigua y conocida —lleva en el OWASP Top 10 desde su primera edición en 2003—, y sigue siendo una de las más explotadas. Pero un nuevo análisis demuestra que su impacto puede ser mucho mayor de lo que la mayoría de las organizaciones imagina: una inyección SQL en una aplicación que utiliza Oracle Database puede convertirse en ejecución de código como SYSTEM —el máximo nivel de privilegios— en el servidor Windows que aloja la base de datos. El ataque encadena tres técnicas: primero, la inyección SQL para ejecutar consultas arbitrarias en la base de datos; segundo, la ejecución de Java stored procedures —Oracle Database incluye una máquina virtual Java interna (OJVM) que permite ejecutar código Java dentro de la base de datos—; tercero, la escalada de privilegios a nivel del sistema operativo aprovechando que el servicio de Oracle se ejecuta con privilegios elevados en Windows. El resultado: una vulnerabilidad web aparentemente convencional que termina con el atacante teniendo control total del servidor de base de datos —y de todos los datos que contiene—. Las bases de datos son el tesoro más valioso de cualquier organización: datos de clientes, transacciones, información financiera, propiedad intelectual. Y una inyección SQL mal gestionada puede entregar ese tesoro completo a un atacante. La lección: la inyección SQL no es una vulnerabilidad del pasado. Es una puerta de entrada al presente y al futuro de tu organización.
Oracle Database y Java: la integración que amplifica el impacto de una inyección SQL
Oracle Database es la base de datos empresarial más utilizada del mundo, especialmente en grandes organizaciones, banca, telecomunicaciones y administración pública. Su integración con Java es una de sus características más potentes —y más peligrosas cuando cae en manos equivocadas—. Oracle JVM (OJVM) es una máquina virtual Java completa que se ejecuta dentro del proceso de la base de datos. Permite a los desarrolladores escribir stored procedures en Java que pueden acceder a la base de datos con el máximo rendimiento. Pero también permite ejecutar código Java arbitrario dentro del proceso de Oracle —código que puede hacer cualquier cosa que Java puede hacer, incluyendo ejecutar comandos del sistema operativo—. El servicio de Oracle en Windows se ejecuta con privilegios elevados —típicamente como SYSTEM o como una cuenta de servicio con privilegios cercanos—. Un atacante que consigue ejecutar código Java dentro de la base de datos puede usar las capacidades de Java para ejecutar comandos del sistema operativo, heredando los privilegios del servicio de Oracle. La combinación es letal: la inyección SQL da el acceso inicial, el Java interno proporciona la capacidad de ejecución de código, y los privilegios del servicio de Oracle convierten esa ejecución en control total del servidor Windows. Tres capas de tecnología diseñadas para trabajar juntas, convertidas en tres pasos de una cadena de ataque.
La cadena de ataque: SQLi → Java stored procedure → ejecución de comandos → SYSTEM en Windows
La cadena de ataque completa funciona así. Paso 1 —inyección SQL—: el atacante encuentra un punto de entrada vulnerable en una aplicación web conectada a Oracle: un formulario de login sin sanitizar, un parámetro de URL, un campo de búsqueda. Envía una consulta maliciosa que modifica el comportamiento de la consulta SQL original. Paso 2 —ejecución de consultas privilegiadas—: mediante la inyección, el atacante ejecuta consultas que el usuario de la aplicación no debería poder ejecutar: extraer datos de otras tablas, modificar registros, o —en el caso de este ataque— invocar stored procedures privilegiados. Paso 3 —invocación de Java—: el atacante invoca un stored procedure Java que está disponible en la base de datos (típicamente para funciones administrativas o de integración) o crea uno nuevo si tiene privilegios suficientes. El código Java se ejecuta dentro de la máquina virtual de Oracle. Paso 4 —ejecución de comandos del sistema—: el código Java utiliza la API Runtime.getRuntime().exec() de Java para ejecutar comandos del sistema operativo del servidor Windows. El comando se ejecuta con los privilegios del servicio de Oracle. Paso 5 —escalada a SYSTEM—: si el servicio de Oracle se ejecuta como SYSTEM (la configuración por defecto en muchas instalaciones de Windows), el atacante ya tiene el máximo nivel de privilegios. Si se ejecuta como una cuenta de servicio con menos privilegios, el atacante aplica técnicas estándar de escalada de privilegios de Windows —que son abundantes y bien documentadas—. Paso 6 —control total—: el atacante tiene una shell como SYSTEM en el servidor de base de datos. Puede leer todos los archivos del servidor, instalar malware, crear cuentas de administrador, y —lo más importante— extraer la base de datos completa de la organización. El ataque total toma menos de una hora desde la detección de la inyección SQL. La explotación de cada paso es bien conocida y automatizable. La combinación es lo que lo hace devastador.
El impacto: una sola inyección SQL que compromete la base de datos Y el servidor Windows completo
El impacto de este ataque trasciende la filtración de datos. Una organización que sufre este compromiso pierde: la base de datos completa (todos los datos de clientes, transacciones, registros financieros), el servidor que la aloja (control total del sistema operativo), y potencialmente la red interna (el servidor de base de datos comprometido es la plataforma perfecta para pivotar hacia otros sistemas). El coste de un incidente de este tipo combina: la notificación obligatoria a clientes y reguladores (RGPD, con multas de hasta 20M€), la pérdida de confianza de los clientes, la interrupción de la operación (el servidor de base de datos comprometido debe aislarse, lo que interrumpe todas las aplicaciones que dependen de él), la investigación forense (semanas de trabajo para determinar el alcance del compromiso), y la remediación (reconstrucción del servidor, rotación de todas las credenciales, revisión de todas las aplicaciones que usaban la base de datos). Y lo más inquietante: muchas organizaciones no detectan el compromiso durante semanas o meses. Un atacante que explota una inyección SQL con éxito rara vez hace algo llamativo —extrae datos silenciosamente, se mueve lateralmente, establece persistencia—. Para cuando la organización se entera, el atacante ya ha tenido acceso a la base de datos durante un período prolongado. La detección temprana de las inyecciones SQL no es solo una cuestión de seguridad: es una cuestión de supervivencia.
Cómo MagnoSec audita bases de datos Oracle y previene ataques de inyección SQL
En MagnoSec, las auditorías de aplicaciones web incluyen pruebas exhaustivas de inyección SQL —y sus variantes: inyección ciega, inyección basada en tiempo, inyección de segundo orden— contra todas las aplicaciones conectadas a bases de datos. Utilizamos herramientas automatizadas (SQLMap) combinadas con análisis manual experto para detectar puntos de inyección que las herramientas automáticas pasan por alto. Para bases de datos Oracle, verificamos específicamente la configuración de la máquina virtual Java interna: ¿OJVM está instalada? ¿Es necesaria? ¿Los Java stored procedures disponibles están restringidos? ¿El usuario de la aplicación tiene privilegios para crear stored procedures? Evaluamos los privilegios del usuario de la base de datos que utilizan las aplicaciones: ¿tiene acceso solo a las tablas necesarias o es un superusuario de facto? Revisamos la configuración del servicio de Oracle en Windows: ¿se ejecuta como SYSTEM o como una cuenta de servicio con privilegios mínimos? Recomendamos la segmentación de las bases de datos: la base de datos no debería estar accesible directamente desde la red de aplicaciones —solo a través de capas de acceso controladas—. Y evaluamos la monitorización: ¿las consultas SQL se registran y se analizan en busca de patrones de inyección? Una inyección SQL en explotación deja rastros en los logs de la base de datos —si hay alguien mirando—. La defensa contra la inyección SQL es un problema resuelto técnicamente desde hace dos décadas: sanitización de entradas, consultas parametrizadas, ORMs con escape automático. El problema no es técnico: es de disciplina. Cada aplicación que no implementa estas prácticas es una puerta abierta. Y cada puerta abierta, con la combinación correcta de tecnologías, puede convertirse en el compromiso total de la organización.
Defensa: sanitización de entradas, mínimo privilegio, parcheo de Oracle y segmentación de bases de datos
La mitigación de este ataque se construye en capas que asumen que cualquier capa individual puede fallar. Capa 1 —prevención en la aplicación—: consultas parametrizadas, sanitización de entradas, ORMs con escape automático. Ninguna aplicación debe construir consultas SQL concatenando entradas del usuario. Esta es la defensa fundamental y la que elimina el vector de ataque en su origen. Capa 2 —mínimo privilegio en la base de datos—: el usuario de la base de datos que utilizan las aplicaciones debe tener privilegios mínimos: acceso solo a las tablas necesarias, sin capacidad de crear stored procedures, sin acceso a las tablas del sistema. Una inyección SQL explotada por un atacante solo puede hacer lo que el usuario de la base de datos puede hacer. Si el usuario no puede crear Java stored procedures, el ataque se detiene en el paso 3. Capa 3 —configuración del servicio—: el servicio de Oracle en Windows debe ejecutarse con una cuenta de servicio de privilegios mínimos, no como SYSTEM. Si el ataque llega a ejecutar comandos del sistema, los privilegios de la cuenta de servicio determinan el daño. Capa 4 —deshabilitar lo innecesario—: si OJVM no se utiliza, desinstalarla o deshabilitarla. Cada componente instalado es una superficie de ataque. Capa 5 —parcheo—: Oracle publica parches críticos trimestrales (CPU — Critical Patch Update). Aplicarlos con prontitud —no con meses de retraso— es obligatorio para cualquier organización con bases de datos Oracle. Capa 6 —monitorización—: las consultas SQL sospechosas, los accesos no autorizados a stored procedures privilegiados y los intentos de ejecutar comandos del sistema desde la base de datos deben generar alertas. La inyección SQL es una vulnerabilidad conocida desde hace dos décadas. Que siga siendo explotada con éxito en 2026 no es un fallo de la tecnología: es un fallo de la gestión. Cada organización que aplica las capas de defensa correctamente elimina este vector de ataque. Las que no lo hacen, lo mantienen abierto. Y los atacantes siguen encontrándolo. Porque sigue habiendo puertas abiertas.
Temas tratados
Oracle · SQL injection · SYSTEM · Windows · Java · base de datos · escalada privilegios · SQLi
Servicios relacionados
MagnoSec
Pentesting Web y Hacking Ético
Pentesting web y hacking ético de aplicaciones y APIs según OWASP WSTG. Detectamos SQL Injection, XSS y fallos de autenticación. Informe con CVSS y remediación.
MagnoSec
Auditoría de Código Fuente
Auditoría de código de aplicaciones: revisión manual (code review) y SAST para detectar vulnerabilidades OWASP/CWE en cualquier lenguaje. Alcance y precio.
MagnoSec
Auditoría de Infraestructura
Auditoría de infraestructura tecnológica: redes internas y externas, servidores y firewalls. Hallazgos con CVSS y plan de remediación. PTES y OSSTMM.
Servicios de auditoría
Pentesting Móvil y Auditoría de Apps
Pentesting de apps Android e iOS: análisis estático y dinámico, almacenamiento, comunicaciones y autenticación. Basado en OWASP MSTG, con informe y re-test.
Red Team y Simulación de Ataques Reales
Ejercicios Red Team con simulación realista de adversario. Basado en MITRE ATT&CK. Evaluamos detección, respuesta y contención. Incluye sesión Purple Team.
Auditoría de Active Directory
Auditoría de Active Directory: identificación de vectores de escalado, Kerberoasting, BloodHound, ACLs abusivas. Protege el núcleo de tu identidad corporativa.
Auditoría WiFi para Empresas
Auditoría de redes WiFi corporativas. War driving, rogue AP, WPA2/WPA3 Enterprise, 802.1X. Detectamos configuraciones débiles y accesos no autorizados.
Auditoría de Seguridad para MVP y Startups
Auditoría de seguridad para MVP y startups: autenticación, control de acceso, APIs, Supabase/RLS y cloud. Revisión corta y priorizada antes de lanzar.
¿Quieres saber si tu empresa tiene estas vulnerabilidades?
Auditamos la seguridad de empresas de toda España con alcance cerrado por escrito, informe técnico y ejecutivo, y retest de las correcciones. Presupuesto en 24 horas y primera consultoría sin coste. Si no sabes por dónde empezar, haz el test de seguridad de 15 preguntas.
Artículos relacionados
agosto 2026
ShieldBreak: El Zero-Day que Burló a Microsoft Defender para Obtener Acceso SYSTEM y que Vuelve a Poner en Jaque la Seguridad de Windows
julio 2026
Certighost: El Exploit que Permite a un Usuario con Pocos Privilegios Suplantar un Controlador de Dominio Active Directory
mayo 2026
Escalada de Privilegios en Windows: Técnicas Modernas y Estrategias de Defensa
Recursos gratuitos
Guía completa
Guía de Pentesting Web: Metodología, Herramientas y Precios
Herramienta interactiva
Checklist de Seguridad Informática para Empresas
Referencia
Glosario de Ciberseguridad: 60+ Términos
Guía 2026
Certificaciones de Ciberseguridad: Precios y Comparativa
Herramienta
Calculadora de Precio de Pentesting
Cumplimiento
Pentesting para ISO 27001 y ENS: Qué Exige la Norma