Inyección SQL
Inyección SQL
Director de la Práctica:
Facultad de Ingenierías
2025
2
Dedicatoria
A Dios, por otorgar la sabiduría y la paciencia necesarias para alcanzar este logro. A mis padres,
por su apoyo incondicional y por enseñar que con sacrificio y dedicación todo es posible y a mi
pareja, por la comprensión, el apoyo constante y la motivación brindada durante cada etapa del
proceso formativo.
Agradecimientos
A mi directora de prácticas por permitir el desarrollo de este proyecto, el cual fortaleció las
habilidades en el ciclo de vida del desarrollo de software y aportó una nueva visión sobre la
ciberseguridad, la programación y las tecnologías emergentes. Del mismo modo, se agradece a la
tutora por su acompañamiento continuo y por proporcionar las herramientas necesarias para el
crecimiento profesional. Finalmente, se reconoce el apoyo del Semillero de Seguridad de la
Información por su valiosa contribución en la generación de esta herramienta.
3
Resumen
El presente documento tiene como objetivo documentar los resultados de la práctica empresarial
(SQLi) y falsificación de solicitudes en sitios cruzados (CSRF). Esta práctica se llevó a cabo
durante un periodo de seis (8) meses, tiempo en el cual se integraron herramientas de código
El propósito del sistema desarrollado es apoyar los procesos de auditoría técnica ofensiva
generación de informes técnicos y otro orientado a usuarios no técnicos, alineado con los
1. Análisis del estado del arte sobre SQLi, CSRF y técnicas de detección.
Como resultado, se construyó una herramienta funcional y adaptable que permite realizar
Palabras clave: Seguridad ofensiva, Inyección SQL (SQLi), CSRF (Cross-Site Request Forgery),
27001:2022
Abstract
The purpose of this document is to document the results of the business practice developed
within the framework of the design and implementation of an automated offensive security
module, oriented to the detection of web vulnerabilities, specifically SQL injection (SQLi) and
cross-site request forgery (CSRF). This practice was carried out over a period of six (8) months,
during which time open source tools such as SQLMap and OWASP ZAP were integrated within
a modular and automated environment, allowing its orchestration through Python scripts and
Docker containers.
The purpose of the developed system is to support offensive technical auditing processes through
are available) and in pre-authentication scenarios through targeted attacks on login forms. As a
complement, a module for generating technical reports and another for non-technical users was
integrated, aligned with the controls of ISO/IEC 27001:2022 (controls 8.25, 8.26, 8.28 and 8.29).
The development of the system was structured in the following main stages:
1. Analysis of the state of the art on SQLi, CSRF and detection techniques.
5
As a result, a functional and adaptable tool was built, which allows to perform offensive audits in
Keywords: Offensive Security, SQL Injection (SQLi), CSRF (Cross-Site Request Forgery),
Tabla de Contenido
1. Introducción................................................................................................................................. 6
2. Justificación................................................................................................................................. 7
3. Objetivos.................................................................................................................................... 10
3.1 Objetivo General................................................................................................................10
3.2 Objetivo Específico............................................................................................................10
4. Marco Conceptual...................................................................................................................... 11
5. Marco Teórico............................................................................................................................ 14
5.1 Fundamentos de Seguridad Informática............................................................................ 14
5.2 Inyección SQL................................................................................................................... 15
5.3 CSRF..................................................................................................................................17
5.4 Norma ISO 27001.............................................................................................................. 19
6. Estado del Arte...........................................................................................................................23
Relevancia de la Detección de Vulnerabilidades en el Marco ISO 27001.............................. 23
Análisis de Vulnerabilidades Críticas: SQLi y CSRF..............................................................24
Enfoques y Técnicas de Detección Existentes.........................................................................42
7. Marco Metodológico..................................................................................................................44
6.1 Actividades........................................................................................................................ 45
6.2 Técnicas de recolección de información............................................................................46
6.3 Herramientas utilizadas......................................................................................................47
6.4 Criterios de validación....................................................................................................... 47
8. Desarrollo Práctica.....................................................................................................................47
9. Resultados de Aprendizaje.........................................................................................................55
10. Conclusiones............................................................................................................................ 56
11. Referencias...............................................................................................................................58
7
Lista de Tablas
3. Comandos de SQLMap para análisis de Inyección SQL Tomado de OWASP Foundation.
(n.d.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
8
Lista de Figuras
1. Diagrama del funcionamiento del ataque CSRF. Fuente Alexander y Paola (2025) . . . . 35
2. Falsificación CSRF con método POST. Fuente: Alexander y Paola (2025) . . . . . . . . . . 36
9
1. Introducción
Este proyecto tiene como propósito desarrollar un módulo de seguridad ofensiva que permita
para realizar la detección técnica de las vulnerabilidades, mientras que técnicas de Machine
generando informes comprensibles, claros y útiles incluso para usuarios sin conocimientos
técnicos avanzados. Esta solución busca no solo facilitar el trabajo del auditor, sino también
asegurar que la información sea entregada de manera estructurada y alineada con los
reemplaza los mecanismos existentes de detección, sino que los complementa con capacidades
entornos empresariales.
10
2. Justificación
las aplicaciones web representan uno de los activos más críticos dentro de los sistemas de
información, al estar directamente conectadas con clientes, proveedores y procesos internos. Las
cruzados (CSRF) siguen figurando entre las principales debilidades explotadas por actores
para la detección temprana y documentada de dichas vulnerabilidades, el cual apoya los procesos
fallos de seguridad de forma proactiva, reduciendo el tiempo y la carga operativa a los equipos
internacionales.
El proyecto se alinea con los principios de la norma ISO/IEC 27001:2022, específicamente con
los controles relacionados con el desarrollo seguro (8.25), los requisitos de seguridad de las
aplicaciones (8.26), la codificación segura (8.28) y las pruebas de seguridad durante el desarrollo
Desde el punto de vista práctico, este trabajo contribuye con una herramienta funcional que no
solo identifica fallos técnicos, sino que también genera informes en lenguaje comprensible para
11
usuarios no técnicos, fortaleciendo así los procesos de gestión del riesgo, concientización interna
interpretables.
ofensiva modular y reutilizable que puede ser adaptado por otras organizaciones interesadas en la
3. Objetivos
Desarrollar una aplicación web que integre herramientas de auditoría de seguridad ofensiva e
inteligencia artificial para analizar resultados, generando reportes claros y detallados que
en entornos empresariales.
4. Desarrollar un prototipo funcional que permita realizar auditorías ofensivas de inyección SQL
5. Documentar las funcionalidades del sistema, incluyendo guías técnicas y de uso para facilitar
su implementación y mantenimiento.
13
Es un fragmento de información que un servidor web almacena en el navegador del usuario tras
iniciar sesión. Permite mantener la sesión activa entre múltiples solicitudes. En este proyecto, las
cookies de sesión se extraen automáticamente tras un inicio de sesión exitoso para permitir el
• Confidencialidad
Principio de seguridad que asegura que la información solo esté disponible para las personas
deseadas a una aplicación web. Se aprovecha de la confianza del sistema en el navegador y del
CSRF mediante OWASP ZAP, que permite identificar formularios vulnerables que carecen de
tokens de protección o validación de origen (Ali & Rahman, 2021; OWASP Foundation, 2021).
Es una aplicación web deliberadamente vulnerable que permite practicar y evaluar técnicas
ofensivas como inyección SQL, CSRF, XSS, entre otras. DVWA es utilizada como entorno de
pruebas en este proyecto para validar la efectividad del módulo de escaneo ofensivo en
• Escaneo automatizado
Proceso mediante el cual se utilizan herramientas especializadas para revisar aplicaciones web en
• Integridad
(ISO, 2022)
Es una vulnerabilidad que permite insertar comandos SQL maliciosos en los campos de entrada
de una aplicación web, lo que podría permitir la extracción, modificación o eliminación de datos.
y parámetros web utilizando SQLMap y genera un informe técnico del hallazgo (OWASP
Foundation, 2021).
Herramienta gratuita y de código abierto utilizada para escanear aplicaciones web en busca de
ZAP se usa como motor de detección de CSRF y es invocado automáticamente mediante scripts
ataques reales con el fin de descubrir y explotar vulnerabilidades (NIST, 2018; Stuttard & Pinto,
2011).
• Seguridad de la información
• SQLMap
del sistema para realizar escaneos ofensivos sobre formularios web, capturando resultados
técnicos como payloads inyectados, parámetros vulnerables y tipo de inyección. (Stuttard &
• Token anti-CSRF
Es un valor único generado por el servidor para proteger formularios contra ataques CSRF. Se
espera que este token se incluya y verifique en cada solicitud válida. El módulo de escaneo
desarrollado en este proyecto identifica formularios que no emplean token anti-CSRF, lo cual
2021).
16
• Vulnerabilidad web
Es una debilidad en la lógica, implementación o configuración de una aplicación web que puede
ser explotada por atacantes para comprometer el sistema (OWASP Foundation, 2021).
integridad y disponibilidad, conocidos comúnmente como la tríada CID (CIA, por sus siglas en
inglés). Estos principios establecen las bases para proteger los activos de información dentro de
cualquier organización.
por los usuarios autorizados cuando se necesite. Ataques como denegación de servicio
(DoS) atentan directamente contra este principio (Tipton & Krause, 2007).
17
El equilibrio entre estos tres principios permite que los sistemas de información funcionen de
organización.
Pruebas de Penetración:
Las pruebas de penetración son procedimientos autorizados que simulan ataques reales contra
pruebas forman parte fundamental del proceso de evaluación de seguridad ofensiva, ya que
permiten validar la efectividad de los controles implementados y descubrir fallas antes de que
Durante una prueba de penetración, los auditores adoptan el rol de atacantes éticos para explorar
vectores de entrada, como formularios web, APIs, parámetros GET/POST, cabeceras HTTP,
entre otros. Las pruebas pueden incluir técnicas como escaneo de puertos, inyección de código,
Este enfoque no solo proporciona evidencia técnica sobre el estado de seguridad del sistema,
sino que también apoya decisiones de gestión de riesgos, fortaleciendo la postura general de
Un ataque de inyección SQL consiste en la inserción o «inyección» de una consulta SQL a través
de los datos de entrada del cliente a la aplicación. Un exploit de inyección SQL exitoso puede
del DBMS y en algunos casos emitir comandos al sistema operativo. La inyección SQL
entrada del plano de datos para afectar a la ejecución de comandos SQL predefinidos (OWASP
Foundation 2021).
SQLi Clásico: La inyección SQL en banda es el ataque de inyección SQL más común y fácil de
explotar. Se produce cuando un atacante puede usar el mismo canal de comunicación para lanzar
SQLi Ciega: La inyección SQL inferencial, a diferencia de la SQLi en banda, puede tardar más
en ser explotada por un atacante; sin embargo, es tan peligrosa como cualquier otra forma de
web y el atacante no podría ver el resultado de un ataque en banda (razón por la cual estos
atacante puede reconstruir la estructura de la base de datos mediante el envío de cargas útiles,
de datos.
SQLi Ciego basado en tiempo: La inyección SQL basada en tiempo es una técnica de inyección
SQL inferencial que se basa en el envío de una consulta SQL a la base de datos, lo que la obliga
a esperar un tiempo específico (en segundos) antes de responder. El tiempo de respuesta indica al
Según Stuttard y Pinto (2011), los ataques SQLi pueden tener consecuencias críticas como el
financieros.
críticos.
5.3 CSRF
Según Shahriar & Zulkernine, (2010), CSRF es una técnica de ataque en el que un atacante se
hace pasar por un usuario legítimo y envía una solicitud maliciosa en nombre del usuario
legítimo. La solicitud es completamente legal para el servidor web, pero completa las
operaciones maliciosas que el atacante espera, como modificar la contraseña de la cuenta del
usuario, añadir un administrador del sistema, incluso comprar bienes, transferencia en línea, etc.
ataque requiere la interacción del usuario, quien debe ejecutar una acción que active la
automáticamente en todas las peticiones, incluso sin que el usuario lo note (Owasp
Foundation 2021).
respuestas del servidor ni generan errores visibles. Esto hace difícil detectarlos a través de
escaneos automáticos o análisis de tráfico. Además, al no requerir interacción directa del usuario
ni envío explícito de datos visibles, los ataques CSRF suelen ser silenciosos y difíciles de
Raju, O. S. 2024).
Según Owasp Foundations (2021), Los ataques CSRF pueden ser mitigados mediante
- Tokens anti-CSRF: El servidor genera un token único por sesión que debe ser enviado
- Cookies con atributo SameSite: Restringen el envío automático de cookies entre sitios
cruzados, impidiendo que un sitio externo pueda reutilizar una sesión autenticada.
proviene del mismo dominio o uno de confianza antes de ejecutar acciones sensibles.
21
(Secureframe, 2025a). Los requisitos del SGSI se organizan de acuerdo a una serie de cláusulas
(ISO, 2022a):
tanto el entorno interno como externo de la organización, así como identificar las necesidades y
expectativas de las partes interesadas. Además, se define el alcance del SGSI, en función de los
● Cláusula 7: Soporte: Hace referencia a los recursos necesarios para establecer, implementar,
cumplir con los requisitos del SGSI. Incluye la evaluación de riesgos relacionados con la
establecidos.
auditorías internas y revisiones por la dirección para asegurar la eficacia del sistema.
acciones correctivas, con el objetivo de impulsar la mejora continua del SGSI, garantizando su
2013. Esta actualización agrupa los controles en cuatro dominios: organizacionales, de personas,
vulnerabilidades web como inyección SQL y CSRF, resultan especialmente relevantes los
Este control establece que las actividades de desarrollo deben seguir principios de seguridad
Este control indica que las aplicaciones deben cumplir con requisitos explícitos de seguridad
definidos desde las primeras fases del desarrollo. El módulo propuesto establece como
requerimiento fundamental que toda aplicación web evaluada debe someterse a pruebas
sistemáticas contra vulnerabilidades críticas como SQLi y CSRF. Esta verificación no solo es
técnica, sino que los resultados son traducidos mediante un modelo de lenguaje (LLM) en un
Este control promueve que las organizaciones adopten prácticas de programación que eviten
generados por las herramientas de escaneo permiten inferir qué patrones de codificación insegura
podrían estar presentes (por ejemplo, concatenación de cadenas SQL o ausencia de tokens
Este control enfatiza la necesidad de realizar pruebas de seguridad antes de aceptar una
forma automatizada bajo los lineamientos de la norma. Esto asegura que cualquier despliegue se
situaciones críticas. Una de las más sobresalientes es la inyección SQL (SQLi), que ha sido
incluida en el Top Ten de OWASP desde 2021, representando una de las amenazas más
Además de esta clase de vulnerabilidad que pone en riesgo directamente la integridad de las
bases de datos, hay otras amenazas que impactan la lógica de sesión y los procedimientos de
autenticación, tal como sucede con la falsificación de solicitudes en sitios cruzados (CSRF). A
pesar de que en la actualidad no figura como una categoría autónoma en OWASP, hoy forma
parte del control de acceso interrumpido (Broken Access Control) y se encuentra incluida en el
A pesar de que están documentadas desde hace más de diez años, estas vulnerabilidades siguen
pesar de que hay herramientas eficaces para identificar vulnerabilidades, frecuentemente los
26
como los requeridos por ISO/IEC 27001. Esta desconexión puede dificultar la toma de
del fallo.
revisión teórica: los fundamentos técnicos de las inyecciones SQL y los ataques CSRF, la
clasificación de sus vectores de ataque, las técnicas actuales de detección automatizada (como
SQLMap y OWASP ZAP), el análisis estático del código fuente, y la aplicación de normativas
como la ISO/IEC 27001:2022 y sus controles de seguridad relevantes. Estos temas constituyen la
base conceptual sobre la cual se sustenta la construcción del módulo de detección integrado
propuesto.
normativamente alineado permite a los auditores actuar con mayor precisión y coherencia frente
y cumplimiento regulatorio.
Las bases de datos en aplicaciones web constituyen uno de los pilares fundamentales para el
historiales y transacciones. Según Wolf (2022), una base de datos es una recopilación organizada
Management System, DBMS) que permite su consulta eficiente. En aplicaciones web modernas,
los sistemas de bases de datos relacionales son comúnmente utilizados y se estructuran mediante
En este contexto, el análisis de requisitos adquiere un papel esencial para definir qué datos serán
necesarios y cómo se organizarán. Este análisis permite modelar el esquema de la base de datos
columnas), cualquier modificación debe reflejarse en todas sus copias para evitar discrepancias.
Una mala planificación en esta fase puede acarrear problemas tanto de funcionamiento como de
seguridad.
No obstante, más allá del diseño lógico, una gestión deficiente de la comunicación entre el sitio
web y su base de datos puede representar una amenaza de seguridad significativa. La falta de
inyección SQL, una de las técnicas más utilizadas por los atacantes para acceder, modificar o
Este tipo de fallas en el desarrollo de aplicaciones web representa una categoría distinta de
operativos. Dado que las aplicaciones en línea están diseñadas para ser accedidas por múltiples
oportunidad para actores maliciosos. A través de estas debilidades, es posible que los atacantes
Alrededor del 42% de los sitios web se ven afectados por ciberdelitos (Muzammil et al., 2024).
28
Esta estrecha dependencia entre las aplicaciones web y sus bases de datos hace que cualquier
brecha en los mecanismos de validación o gestión de consultas pueda convertirse en una puerta
de entrada para ataques externos. Uno de los ejemplos más representativos de esta problemática
la comunicación entre el sitio web y la base de datos para ejecutar comandos maliciosos. La
criticidad de este tipo de ataques ha sido ampliamente documentada por organismos como
OWASP, que lo mantiene consistentemente en los primeros puestos de sus listados de amenazas
aquellas que buscan explotar directamente las bases de datos mediante comandos maliciosos,
como es el caso de la inyección SQL. Existen otros vectores de ataque igualmente peligrosos
que, si bien no manipulan directamente las consultas a la base de datos, aprovechan la lógica de
autenticación y confianza del navegador del usuario para ejecutar acciones no autorizadas. Uno
de los ataques más relevantes en esta categoría es la falsificación de petición en sitios cruzados
en evidencia una dimensión diferente del riesgo, centrada en la manipulación del contexto de
Tanto la inyección SQL como el ataque CSRF representan amenazas críticas debido a su
Aunque se originan desde mecanismos distintos (una desde la manipulación directa de consultas
a la base de datos y otra desde el abuso del contexto de autenticación del usuario), ambos
29
de la aplicación. Comprender los factores que permiten su aparición, así como los riesgos que
detección y mitigación. En este sentido, el presente apartado explora con mayor profundidad las
vulnerabilidades.
Inyección SQLi
La Inyección SQL (SQLi) se mantiene como una de las amenazas más significativas y
Ten de OWASP desde 2021, lo que la posiciona como una de las vulnerabilidades más
explotadas por actores malintencionados (Enhancing SQL Injection Detection And Prevention
Según Abdullayev y Chauhan (2023), las aplicaciones web que dependen de bases de datos son
atacante compromete una aplicación insertando código malicioso en ella y utilizándolo para
La aplicación Web tiene la siguiente validación para el formulario de login de su sitio web:
WHERE owner =
AND itemname = ;
30
consulta base constante y una cadena introducida por el usuario, la consulta sólo se comporta
nombre de usuario wiley introduce la cadena "nombre' OR 'a'='a" para (itemName), entonces la
La adición de la condición OR 'a'='a' hace que la cláusula where se evalúe siempre como
más simple:
Esta simplificación de la consulta permite al atacante eludir el requisito de que la consulta sólo
devuelva elementos que pertenezcan al usuario autenticado; la consulta ahora devuelve todas las
Si bien esto puede parecer un método oscuro para atacar un sitio web, usted debe entender que
muchos sitios web, a menudo propiedad de empresas famosas y ricamente valoradas, han sido
presa de ataques devastadores muy similares al descrito aquí (Ledin, 2022), si bien este tipo de
ataque puede parecer poco sofisticado, numerosos sitios web empresariales de alto perfil han
La Tabla 2 muestra una lista de algunas empresas afectadas y los efectos adversos de los ataques
de inyección SQL.
segunda vez
usuarios expuestos
posible
Como se puede apreciar, a pesar de su amplio antecedente con grandes empresas y del
reconocimiento como una de las vulnerabilidades más críticas por organismos como OWASP, la
inyección SQL continúa siendo explotada hoy en dia. Esto se debe a una serie de factores
Muchos desarrolladores siguen utilizando métodos inseguros para construir consultas SQL,
como la concatenación directa de cadenas con entradas de usuario. Esta práctica, aunque sencilla
(como el uso de consultas preparadas o ORM seguros) sigue siendo una causa crítica.
A medida que las aplicaciones se vuelven más dinámicas, interactivas y distribuidas, el número
de puntos de entrada para datos del usuario aumenta significativamente (parámetros GET, POST,
headers, cookies, etc.). Esta expansión de la superficie de ataque hace que sea más difícil
equipo de desarrollo, sino en bibliotecas externas o dependencias que manejan consultas SQL sin
directamente.
33
Este tipo de vulnerabilidad pone en evidencia una dimensión diferente del riesgo, centrada en la
Frente a este panorama, surge la necesidad de desarrollar soluciones más sofisticadas que
superen las limitaciones de los métodos tradicionales de detección, los cuales se basan
técnicas de Machine Learning con el uso de APIs de herramientas especializadas como SQLMap
(para la detección de inyecciones SQL). Este enfoque híbrido tiene como objetivo no solo
ataque emergentes, mejorando la capacidad de defensa de los sistemas ante entornos cibernéticos
cruzados (Cross-Site Request Forgery o CSRF), el cual, referenciado por Fortinet, compromete
en evidencia una dimensión diferente del riesgo, centrada en la manipulación del contexto de
En este mismo contexto de amenazas que aprovechan la confianza implícita entre el usuario y la
aplicación, la falsificación de solicitudes entre sitios (CSRF) representa otro vector de ataque
relevante. Según R. Auger (2010), CSRF es un ataque cibernético que engaña al usuario para que
envíe una solicitud maliciosa, la cual ejecuta acciones no deseadas en una aplicación web en la
que el usuario está autenticado actualmente. Este tipo de ataque no requiere romper los
mecanismos de autenticación, sino que se basa en explotar la confianza que la aplicación tiene en
la sesión del usuario, permitiendo al atacante realizar acciones como cambiar contraseñas,
realizar transferencias o modificar datos sensibles sin que el usuario sea consciente.
La mayoría de sitios web al procesar alguna solicitud del navegador incluyen automáticamente
credenciales asociadas, como por ejemplo la cookie de inicio de sesión, la dirección IP o las
credenciales de windows, esto junto con una sesión activa es lo que aprovecha este tipo de
ataque para que las peticiones fraudulentas parezcan una solicitud legítima y pase desapercibida.
Figura 1. Diagrama del funcionamiento del ataque CSRF. Fuente Alexander y Paola (2025)
Ejecutar solicitudes HTTP mediante el procedimiento GET para recopilar datos fundamentales
como datos de usuario, roles de usuario, información de inicio y finalización de sesión. Un caso
A través del siguiente código es posible adquirir, alterar, generar o eliminar esta información.
Además, esta vulnerabilidad no se resuelve solo al cambiar el método HTTP a POST, aunque
contribuye a su mitigación más que GET. Esto se debe a que se puede llevar a cabo lo siguiente,
Figura 2. Falsificación CSRF con método POST. Fuente: Alexander y Paola (2025)
simple solicitud a través de una etiqueta img de html, se llevó a cabo una transmisión de una
Ataques CSRF de inicio de sesión (login CSRF): Es un tipo de ataque en el que el atacante
logra que la víctima inicie sesión en una cuenta controlada por el atacante, sin que la víctima lo
sepa.
Como se ejecuta:
● Luego hace que la víctima (que no ha iniciado sesión todavía) envíe, sin saberlo, un
● La víctima queda logueada con esa cuenta, y el atacante puede rastrear su actividad o
Como se ejecuta:
● Similar a un ataque XSS (Cross Site Scripting) almacenado, pero en este caso, el código
● El atacante logra que un formulario o script con una petición maliciosa quede guardado
en la base de datos.
● Cada vez que un administrador u otro usuario accede a esa sección, su navegador ejecuta
autenticación del usuario, como cambiar la contraseña, el correo electrónico o activar métodos de
autenticación.
Como se ejecuta:
● Luego visita un sitio controlado por el atacante, que lanza una petición HTTP maliciosa
cambiar la contraseña).
● Si no hay protección CSRF en estas funciones críticas, el cambio se ejecuta con éxito.
Ataques CSRF de transacciones: Segun H. Shahriar and M. Zulkernine (2010), Este tipo de
ataque apunta a acciones sensibles con impacto real, como transferencias bancarias, pagos,
compras, etc.
38
Como se ejecuta:
● El atacante engaña al usuario para que envíe una solicitud que genera una acción como
casos documentados de ataques exitosos por CSRF son considerablemente más escasos en la
literatura académica y en reportes técnicos. Esto puede deberse a que este tipo de ataque no deja
rastros evidentes en los registros del servidor o es confundido con fallas de autenticación.
Además, muchas organizaciones evitan publicar incidentes de este tipo por razones
automatizada.
A pesar de ser una vulnerabilidad conocida desde hace más de dos décadas, CSRF sigue presente
en muchas aplicaciones web modernas, lo que refleja una serie de factores estructurales y
culturales dentro del desarrollo de software. Una de las principales razones de su prevalencia es
encabezados SameSite en las cookies o validación estricta del origen. Muchos desarrolladores
subestiman su impacto o consideran que otras protecciones, como los firewalls de aplicaciones
web (WAF), son suficientes, cuando en realidad CSRF explota la lógica de sesión del
aquellas basadas en frameworks SPA (Single Page Applications) que introducen múltiples puntos
de interacción con el servidor sin una estructura clara de seguridad por cada endpoint.
Este conjunto de factores permite que CSRF siga siendo una amenaza vigente en el panorama de
Frente a este panorama, surge la necesidad de desarrollar soluciones más sofisticadas que
superen las limitaciones de los métodos tradicionales de detección, los cuales se basan
técnicas de Machine Learning con el uso de APIs de herramientas especializadas como SQLMap
(para la detección de inyecciones SQL) y OWASP ZAP (para vulnerabilidades como CSRF).
Este enfoque híbrido tiene como objetivo no solo identificar vulnerabilidades existentes, sino
defensa de los sistemas ante entornos cibernéticos cada vez más dinámicos y sofisticados.
SQLMap
SQL en aplicaciones web y bases de datos. Su capacidad para automatizar tareas que de otro
Según la pagina oficial de Owasp, para descargar SQLMap, puedes clonar el repositorio Git
ejecutando el siguiente comando. Asegúrese de que Git está instalado en tu máquina antes de
sqlmap-dev
SQLMap es compatible con las versiones 2.6, 2.7 y 3.x de Python en cualquier plataforma.
Para escanear un sitio web en busca de vulnerabilidades de inyección SQL, utilice el siguiente
comando:
Existen múltiples comandos para la detección de inyección SQL, aqui muestro algunos
Escenario Comando
"parametros"
--cookie="sessionid=abc123"
41
--headers="User-Agent:
sqlmap-test"
--risk=3
nombre_base
nombre_base -T nombre_tabla
nombre_base -T nombre_tabla
Foundation. (n.d.)
Dependiendo de cómo se ejecuten los comandos, nos pueden arrojar resultados en diferentes
formatos como: .html, .csv, .json, .txt o salida en consola en texto plano.
OWASP Zap
El OWASP Zed Attack Proxy (ZAP) es una herramienta de código abierto desarrollada por la
Open Web Application Security Project (OWASP), cuyo propósito principal es asistir en la
de las soluciones más utilizadas por profesionales de ciberseguridad a nivel global (Jakobsson &
Häggström, 2022).
ZAP opera bajo el paradigma de caja negra (black-box testing), lo cual significa que no requiere
proceso compuesto por tres módulos fundamentales: un crawler (araña web) para recorrer los
enlaces y rutas disponibles, un fuzzer para enviar cargas maliciosas en los puntos de entrada
detectados, y un analizador que interpreta las respuestas del servidor para identificar patrones
Una de las ventajas clave de ZAP es su capacidad de automatización mediante el uso de escaneos
específicas de detección, como fue demostrado en el estudio de Alazmi y Conte de Leon (2023),
A pesar de que su enfoque inicial ha sido identificar vulnerabilidades como la inyección SQL,
OWASP ZAP también ha incluido funcionalidades valiosas para identificar ataques CSRF
peticiones HTTP y verificar si poseen tokens anti-CSRF válidos, además de comprobar si hay
El estudio de Jakobsson y Häggström (2022) resalta que, a pesar de sus limitaciones iniciales
frente a aplicaciones de una sola página (SPA), la flexibilidad de ZAP permite extender sus
Esto ha facilitado su uso en entornos más modernos, permitiendo analizar aplicaciones complejas
El estudio de Jakobsson y Häggström (2022) subraya que, pese a sus restricciones iniciales para
aplicaciones de una única página (SPA), la flexibilidad de ZAP posibilita ampliar sus habilidades
En el marco del presente proyecto, OWASP ZAP se integra como uno de los componentes
conjunto con otras herramientas como SQLMap. Su uso no solo aporta en la identificación
técnica de las vulnerabilidades, sino que también genera evidencia técnica útil que puede ser
interpretada por modelos de IA para producir informes comprensibles alineados con la norma
ISO/IEC 27001:2022.
coincidencia de patrones a métodos más sofisticados que incorporan análisis estático, monitoreo
El análisis dinámico surge como un complemento fundamental, ya que permite el monitoreo del
comportamiento de una aplicación web durante su ejecución para detectar ataques de inyección
SQL. Este enfoque se centra en observar cómo la aplicación procesa las entradas y cómo
interactúa con la base de datos en tiempo real. Las herramientas de análisis dinámico suelen
interceptar e inspeccionar las consultas SQL generadas por la aplicación, buscando anomalías o
Una de las principales fortalezas del análisis dinámico es su capacidad para detectar
más precisa de las amenazas en el mundo real. Un algoritmo simple para el análisis dinámico
implica extraer métodos GET y POST sospechosos, inyectar sentencias SQL vulnerables (como
una comilla simple) y analizar la respuesta del servidor web en busca de vulnerabilidades. Este
Aunque las limitaciones del análisis dinámico de forma aislada no se detallan explícitamente en
la fuente, generalmente puede pasar por alto vulnerabilidades que no se activan durante la fase de
prueba (es decir, cobertura de prueba limitada). También puede ser intensivo en recursos y puede
introducir latencia. La capacidad del análisis dinámico para detectar vulnerabilidades que solo
aparecen en tiempo de ejecución y proporcionar una evaluación más precisa de las amenazas
reales es fundamental.
45
Ahmed y Uddin (2020) presentaron un enfoque avanzado de detección de SQLI que aprovecha la
PNL integrada con un marco de aprendizaje conjunto basado en el algoritmo Random Forest
(RF).
Esta técnica fusiona varios modelos de aprendizaje automático en un único sistema predictivo
para potenciar la eficacia de la detección. El clasificador resultante exhibió una notable exactitud
de aproximadamente 98%, a True Positive Rate (TPR) de 96 %, y a False Negative Rate (FNR)
El algoritmo Random Forest, según se detalla en la literatura técnica, opera como un conjunto de
varios árboles de decisión que trabajan en conjunto para crear una clasificación más sólida y
exacta. Dentro del marco de la identificación de inyecciones SQL, este método es especialmente
peticiones HTTP o del código fuente para detectar patrones inusuales. Cada árbol de decisión
puede entrenarse con distintos subconjuntos del conjunto de datos, y cada uno elige una
modelo. Esta sinergia facilita la identificación más precisa de las intenciones encubiertas en
cadenas de texto, lo que resulta en una mayor exactitud en la identificación de ataques. Además,
manejar conjuntos de datos de seguridad que incluyen ruido, desbalances o rasgos no lineales, lo
que fortalece su utilidad en ambientes corporativos donde los patrones de ataque pueden ser
complejos y diversos.
46
web como SQLi y CSRF; y una técnica, centrada en el desarrollo de una herramienta
El modelo en cascada fue seleccionado debido a que el proyecto contempla fases bien definidas
pruebas de funcionamiento y entrega de resultados. Además, esta metodología permite tener una
visión clara del avance y mantener control sobre los entregables específicos en cada punto del
ciclo de desarrollo, lo cual es coherente con la naturaleza investigativa y práctica del trabajo.
web, se trabajará con un conjunto de actividades alineadas con estas fases, que se describen en
6.1 Actividades
1. Construcción del estado del arte: Se documentaron los fundamentos de los ataques
seguridad como ISO/IEC 27001:2022, y se definieron los conceptos clave del proyecto.
normativos aplicables, lo que sirvió como base sólida para especificar las características
3. Diseño de arquitectura técnica del sistema: Se estructuró una solución modular basada
lógica de automatización para que el sistema pueda lanzar el escaneo completo (SQLi y
CSRF) desde una sola entrada (URL), procesar los resultados y generar un informe
27001:2022.
documentó el flujo completo del proceso ofensivo, desde el ingreso del usuario hasta la
Como parte del proceso de cierre, se diseñaron dos documentos de apoyo fundamentales:
6.1. Guía técnica: Destinada a facilitar la comprensión del sistema por parte de
explica paso a paso el uso del sistema y la interpretación de los resultados obtenidos.
Para la construcción del estado del arte, se utilizó la técnica de revisión documental sistemática,
con base en fuentes académicas, técnicas y normativas. Entre los recursos consultados se
encuentran:
- Artículos científicos indexados en bases como Scopus, IEEE Xplore y Google Scholar.
Esta técnica permitió identificar tendencias actuales, enfoques de detección, limitaciones de las
técnicos y no técnicos.
natural alineado con los controles A.8.25, A.8.26, A.8.28 y A.8.29 de ISO/IEC
27001:2022.
vulnerabilidades de inyección SQL y ataques CSRF, diseñado como una aplicación web de
de las vulnerabilidades objetivo, así como una revisión detallada de las normas de seguridad
Durante el segundo mes de la práctica, se consolidó la base documental del proyecto mediante la
finalización del estado del arte, profundizando en las definiciones técnicas de inyección SQL y
ataques CSRF, junto con una revisión exhaustiva de técnicas automatizadas de detección. Se
operativo Windows con Python como lenguaje principal, logrando el desarrollo de una versión
beta funcional del módulo de análisis automático. Esta implementación inicial demostró
través de interfaz de terminal, estableciendo las bases para el desarrollo posterior de la interfaz
gráfica.
completa del estado del arte del proyecto, estableciendo un marco conceptual robusto que abordó
el contexto técnico de las vulnerabilidades web SQL injection y CSRF, junto con una revisión
relevancia fue la integración específica con los controles de la norma ISO/IEC 27001:2022,
particularmente los controles 8.25 (Ciclo de vida del desarrollo seguro), 8.27 (Arquitecturas de
estadísticas del sistema, escaneo automatizado de vulnerabilidades, reporte técnico detallado por
host y tipo de ataque detectado, y reporte ISO alineado con controles normativos de
INICIAL
formal del sistema como el desarrollo técnico funcional, respondiendo proactivamente a las
observaciones del tutor académico. Se completaron elementos críticos del diseño funcional
escenarios de interacción del auditor de seguridad con la aplicación web, especificando roles,
flujos normales y alternativos, así como condiciones previas y posteriores bajo una plantilla
estandarizada que facilitó la trazabilidad con los módulos del sistema. Paralelamente, se
desarrolló el diagrama de actividades que representó el flujo completo de acciones del auditor al
ejecutar escaneos y generar informes, contemplando las bifurcaciones técnicas entre escaneo con
A nivel de desarrollo técnico, se logró la finalización del módulo de detección de inyección SQL
(SQLi) con capacidades tanto ofensivas como no ofensivas, implementando opciones de escaneo
cookies de sesión tanto para credenciales válidas como para acceso logrado mediante inyección
contraseña mediante asteriscos. Durante este período se inició la construcción del módulo de
detección CSRF con integración automatizada de OWASP ZAP, orientado a generar informes
técnicos alineados con controles normativos, aunque los tutores señalaron la necesidad de incluir
progreso técnico.
COMPLETA
terminal hacia una aplicación web completa y funcional, representando el hito más significativo
utilizando FastAPI como framework principal, implementando una API REST robusta que
framework frontend, desarrollando una Single Page Application (SPA) responsiva y moderna
que materializa los mockups de alta fidelidad diseñados en fases anteriores. La aplicación web
incluye módulos funcionales completos de dashboard con estadísticas en tiempo real, consola de
TESTING AVANZADO
que integra de manera cohesiva todos los componentes del sistema: backend FastAPI, frontend
Angular, base de datos PostgreSQL, y las herramientas especializadas SQLMap y OWASP ZAP.
automático en cualquier entorno que soporte contenedores Docker, eliminando las dependencias
herramienta como una solución completa y profesional para auditorías de seguridad web,
estableciendo las bases para la fase final de documentación técnica y entrega del proyecto.
56
FINAL
presentación del sistema completo, consolidando todos los componentes desarrollados en una
los prompts de inteligencia artificial para la generación de reportes ISO/IEC 27001:2022 más
del sistema mediante casos de uso reales sobre aplicaciones web vulnerables. Se validaron
proyecto se entregó como una solución integral que cumple con los objetivos planteados
normativo.
57
para backend, Angular para frontend, y Docker para contenedorización, integrando exitosamente
vulnerabilidades
10.Conclusiones
Al finalizar los siete meses de práctica empresarial, se logró cumplir con el objetivo principal
establecido desde el inicio: desarrollar una herramienta integral para la detección automatizada
de vulnerabilidades web.
Durante el proceso se presentaron diversos desafíos técnicos que, aunque inicialmente resultaron
representó uno de los mayores retos, dado que ambas herramientas no estaban diseñadas para
trabajar de manera conjunta; sin embargo, se consiguió la creación de una API capaz de
unificarlas de forma eficiente, constituyendo uno de los principales logros técnicos del proyecto.
Uno de los aspectos más relevantes fue reconocer la importancia de vincular los resultados
técnicos con estándares normativos como ISO 27001. Este enfoque permitió comprender que la
alineación con marcos de cumplimiento no es un elemento adicional, sino una necesidad esencial
para aportar valor real a las organizaciones. Los reportes automatizados generados por la
aplicación no solo identifican vulnerabilidades, sino que las presentan en un contexto que facilita
La implementación de Docker se destacó como una decisión clave para simplificar el despliegue
del sistema, permitiendo que cualquier usuario pueda instalar y ejecutar la herramienta con un
seguridad, brindando soluciones útiles también para pequeñas y medianas empresas que carecen
de recursos especializados.
60
11.Referencias
Abdullayev, V., & Chauhan, A. S. (2023). SQL Injection Attack: Quick view. Deleted Journal,
30-34. [Link]
Alazmi, S., & De Leon, D. C. (2023). Customizing OWASP ZAP: A Proven Method for
Detecting SQL Injection Vulnerabilities. 2023 IEEE 9th Intl Conference On Big Data
Smart Computing, (HPSC) And IEEE Intl Conference On Intelligent Data And Security
Alexander, G. R. A., & Paola, R. A. J. (2025, 20 febrero). Simulación del ataque CSRF por
Ali, M., & Rahman, M. (2021). In A Study on Cross Site Request Forgery (CSRF) Attack in Web
[Link]
Anwar, I. (2025). Machine Learning Approaches for Detection of SQL Injection Attacks. Jurnal
[Link]
Amey, Simon. (2022). <i>Software Test Design - 9.10.7 CORS Attacks.</i> (pp. 268). Packt
<br>[Link]
sign/cors-attacks
Broken access control. (s. f.). Common Weakness Enumeration. Recuperado 2 de mayo de 2025,
de [Link]
61
C. Liu, X. Shen, M. Gao and W. Dai, "CSRF Detection Based on Graph Data Mining," 2020
IEEE 3rd International Conference on Information Systems and Computer Aided Education
[Link]
=9236789
Chavez, S., Anahue, J., & Ticona, W. (2024). Implementation of an ISMS Based on ISO/IEC
the 14th International Conference on Cloud Computing, Data Science and Engineering,
El modelo en cascada en el desarrollo de software. (2019, March 11). IONOS. Retrieved July
[Link]
Enhancing SQL Injection Detection and Prevention Using Generative Models. (s. f.).
[Link]
Guide, S. (n.d.). ISO 27001 Controls Explained: A Guide to Annex A (Updated 2024).
[Link]
Gupta, Namita Chatterjee, Prasenjit Choudhury, Tanupriya. (2021). <i>Smart and Sustainable
Intelligent Systems - 34.2 SQL Injection Attack and Its Types.</i> (pp. 483). John Wiley &
<br>[Link]
ction-attack
2010 IEEE 21st International Symposium on Software Reliability Engineering, San Jose, CA,
[Link]
=5635036
[Link]
oteccion-de-la-privacidad-controles-de-seguridad-de-la-informacion-gtc-iso-iec27002-20
[Link]
Jakobsson, A., & Häggström, I. (2022). Study of the techniques used by OWASP ZAP for
Kshetri, N., Kumar, D., Hutson, J., Kaur, N., & Osama, O. F. (2024). algoXSSF: Detection and
analysis of cross-site request forgery (XSRF) and cross-site scripting (XSS) attacks via
[Link]
Laghnimi, J., Moumane, K., Ahmed, Z., Lamkimel, M., Kacimi, Z., & Wahi, Y. (2024). ISO/IEC
[Link]
63
Ledin, Jim. (2022). <i>Modern Computer Architecture and Organization (2nd Edition) - Learn
x86, ARM, and RISC-V Architectures and the Design of Smartphones, PCs, and Cloud
Servers - [Link] SQL Injection.</i> (pp. 391). Packt Publishing. Retrieved from
<br>[Link]
ection
Lin, X., Zavarsky, P., Ruhl, R., & Lindskog, D. (2009). Threat Modeling for CSRF Attacks. 2009
[Link]
[Link]
Liu, C., Shen, X., Gao, M., & Wei Dai. (2020). CSRF Detection Based on Graph Data Mining.
475 2020 IEEE 3rd International Conference on Information Systems and Computer
475-480.
[Link]
mber=9236789
Lu, D., Fei, J., & Liu, L. (2023). A Semantic Learning-Based SQL Injection attack detection
[Link]
64
Mitch: A machine learning approach to the Black-Box detection of CSRF vulnerabilities. (2019).
[Link]
[Link]
tion_Attack_Detection_and_Prevention_Techniques_Using_Machine_Learning/links/5f0415d
4458515505091b1ec/SQL-Injection-Attack-Detection-and-Prevention-Techniques-Using-Mac
[Link]
Muzammil, M. B., Bilal, M., Ajmal, S., Shongwe, S. C., & Ghadi, Y. Y. (2024). Unveiling
Vulnerabilities of Web Attacks Considering Man in the Middle Attack and Session
Okesola, J. O., Ogunbanwo, A. S., Owoade, A., Olorunnisola, E. O., & Okokpuji, K. (2023).
[Link]
de España S.L.
65
¿Qué es CSRF (Falsificación de solicitudes entre sitios)? | Fortinet. (s. f.). Fortinet.
[Link]
%B3n%20de%20solicitudes%20entre,ya%20le%20ha%20otorgado%20autenticaci%C3
%B3n.
R. Auger (2010 Abril 4) The Cross-Site Request Forgery (CSRF/XSRF) FAQ [Online].
Available: [Link]
Ramadan, M., Osama, B., Zaher, M., Mansour, H., & Sersi, W. E. (2024). Enhancing Web
[Link]
Rehim, Rejah Mohan, Manindar. (2024). <i>Offensive Security Using Python - 3.2.3
<br>[Link]
ing/sqlmap
Salah, K., Barakat, S., & Rezk, A. (2025). An Effective SQL Injection Detection Model Using
[Link]
[Link]
[Link]
66
oteccion-de-la-privacidad-controles-de-seguridad-de-la-informacion-gtc-iso-iec27002-20
[Link]
Shahriar, H., & Zulkernine, M. (2010). Client-Side Detection of Cross-Site Request Forgery
358-367.
[Link]
mber=5635036
Sravani, N., & Raju, O. S. (2024). Machine Learning for Web Vulnerability Detection: The Case
Stuttard, D., & Pinto, M. (2011). The Web Application Hacker's Handbook: Finding and
Syafrizal, M., Selamat, S. R., & Zakaria, N. A. (2022). Analysis of cybersecurity standard and
[Link]
Tipton, H., & Krause, M. (2007). Information Security Management Handbook (6th ed.).
System Design (5th Edition) - 8.5.1 Databases.</i> (pp. 428). Elsevier. Retrieved from
<br>[Link]