Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
lighty-sqlinj-demo — Demostración educativa de explotación de la inyección SQL CVE-2014-2323 en mod_mysql_vhost de lighttpd, con laboratorio basado en Docker para el análisis práctico de vulnerabilidades y su parcheo. | Kitploit
Herramientas/GitHubGitHub/cirocosta/lighty-sqlinj-demo
Seguridad de ContenedoresAnálisis de VulnerabilidadesExplotación de Aplicaciones WebAprendizaje y EducaciónLabs y Práctica
GitHubcirocosta/lighty-sqlinj-demo

lighty-sqlinj-demo

Demostración educativa de explotación de la inyección SQL CVE-2014-2323 en mod_mysql_vhost de lighttpd, con laboratorio basado en Docker para el análisis práctico de vulnerabilidades y su parcheo.

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio
810hace 10 añosAún no revisado

title: Ep4 - Vulnerabilidad Relacionada con Redes members:

  • Ciro S. Costa
  • Marcela Terakado date: 10 Nov, 2015

Vulnerabilidad relacionada:

CVE-2014-2323 [1] was assigned to SQL injection bug.
CVE-2014-2324 [2] was assigned to the path traversal bug.

Confirmación: http://download.lighttpd.net/lighttpd/security/lighttpd_sa_2014_01.txt

  • Versión afectada: 1.4.34

Presentación

  • Explicar la falla
    • presentar el servicio a ser explotado
    • dónde, en el código fuente, está la falla
    • parche de corrección de la falla
  • Preparar demos con relación al exploit
    • Exploit
    • Aplicar la corrección de la falla
    • Intentar explotar de nuevo
  • lighttpd (lighty)
  • Virtual Hosting
    • Preparando un servidor Lighttpd
  • SQL
    • sql injection
  • Docker
    • Container Networking
  • Demo!
    • Exploit
    • Verificación del Path

lighttpd (lighty)

El servicio a explotar es Lighttpd. Es un servidor web de código abierto (licencia BSD) optimizado para ser ligero y rápido. Surgió como una 'prueba de concepto' del famoso problema c10k (cómo manejar 10 mil conexiones simultáneas en un servidor), ganando bastante popularidad en esa época (2003), siendo utilizado actualmente por Whatsapp.com, Xkcd y, en el pasado, Youtube. Su posicionamiento en el mercado es bastante interesante, como podemos ver en el gráfico:

Posicionamiento Lighttpd - Tráfico x Cantidad de Websites

El servidor busca manejar el problema de muchas conexiones mediante el uso de mecanismos asíncronos basados en eventos (kqueue en BSDs, epoll en Linux), reduciendo la necesidad de múltiples hilos, lo que resulta en una 'huella' de memoria mucho menor y una mejor utilización de la CPU (estrategia también utilizada por servidores Nginx, cuyo uso ha aumentado significativamente a lo largo de los años):

Mercado de servidores

Una de las características de lighty es la fácil gestión de virtual hosts.

Virtual Hosting

Es un método utilizado para alojar más de un nombre de dominio cuya resolución se hace a una misma IP, reduciendo los costos de hospedaje para empresas que buscan ofrecer sitios web, ya que no es necesario reservar un servidor dedicado para cada sitio web.

La técnica puede basarse en IP (una interfaz para cada host) o basarse en nombre (un nombre para cada host, compartiendo la interfaz) - explorada en esta presentación.

Name-Based

: utiliza el 'Hostname' proporcionado por el cliente para identificar qué servicio usar para responder en consecuencia. Este método presenta dos dificultades: complicaciones para manejar sesiones seguras (TLS): el handshake debe realizarse antes de cualquier paso de cabecera que indique el Host al servidor, lo que complica la determinación de qué certificado presentar en el handshake. Una salida a este problema es una extensión de TLS llamada Server Name Indication (SNI) que permite presentar el nombre al inicio del handshake, posibilitando así la elección del certificado correcto. Un segundo problema es el intento de conexión sin la cabecera Host bien definida, lo que conlleva a la indeterminación del servicio a utilizar.

Virtual Host - redes.io Virtual Host - mac0448.io

IP-Based

: utiliza IPs separados para cada aplicación. El servidor web se configura entonces para múltiples interfaces de red físicas (o virtuales sobre una misma interfaz) y responde de forma correspondiente de acuerdo con la dirección IP (destino)G;.

IP aliasing, permite que creemos interfaces virtuales para cada servicio.

En el caso de una gran empresa, administrar dicho mapeo puede volverse complejo dependiendo del número de clientes. Lighty ofrece entonces soporte para el uso de bases de datos para tal fin, como mostraremos más adelante.

Antes, veamos cómo hacer "a mano" la configuración de un servidor y luego agregar vhosting.

Preparando un servidor Lighttpd

Preparar un servidor básico lighttpd es muy fácil. Basta con realizar su instalación y crear un archivo de configuración que indique el puerto que se utilizará, cómo responder a determinadas solicitudes y otras configuraciones.

Podemos preparar un ejemplo de configuración que solo se ocupa de recibir solicitudes de archivos estáticos (.html o .txt):

server.document-root = "/usr/lighttpd/mysite.com/"
server.port = 80

mimetype.assign = (
  ".html" => "text/html",
  ".txt" => "text/plain"
)

Imagine ahora que queremos crear un negocio basado en la venta de sitios web y ofrecemos un dominio propio al comprador. Con el fin de minimizar los costos, queremos entonces crear vhosts para cada cliente. Digamos que el curso de la asignatura de redes desea adquirir tres sitios web: redes.io, mac0448.io y mac5910.io. Nuestra empresa entonces registra los dominios, todos apuntando al IP de nuestro único servidor, de única interfaz.

PD: como queremos simular esto, podemos alterar el archivo /etc/hosts:

172.17.0.2 redes.io
172.17.0.2 mac0448.io
172.17.0.2 mac5910.io

Para que seamos capaces de servir los diferentes sitios web de los clientes resolviendo a partir de un único IP, podemos entonces configurar el servidor a mano:

server.document-root = "/usr/lighttpd/default/"
server.port = 80

mimetype.assign = (
  ".html" => "text/html",
  ".txt" => "text/plain"
)

$HTTP["host"] == "redes.io" {
  server.document-root = "/usr/lighttpd/redes/"
} else $HTTP["host"] == "mac0448.io" {
  server.document-root = "/usr/lighttpd/mac0448/"
} else $HTTP["host"] == "mac5910.io" {
  server.document-root = "/usr/lighttpd/mac5910/"
}

Pero, como podemos imaginar, esto puede convertirse en un problema a medida que queremos lidiar con muchos clientes y proporcionar diferentes configuraciones a cada sitio web, como se mencionó anteriormente.

Con el módulo mod_mysql_vhost podemos entonces conectar nuestro servidor a una base de datos mysql responsable de dicho mapeo. Especificamos entonces el nombre de la base de datos, cómo encontrarla en nuestra red y qué comando utilizar para realizar la búsqueda.

server.modules = (
	"mod_accesslog",
	"mod_mysql_vhost"
)

mysql-vhost.db		= "NOME_DO_BANCO"
mysql-vhost.user	= "USUARIO"
mysql-vhost.pass	= "SENHA"

(!!!!!!!!!!!!!!!)
mysql-vhost.sql		= "SELECT docroot FROM domains WHERE domain='?';"
(!!!!!!!!!!!!!!!)

mysql-vhost.hostname	= "HOSTNAME"
mysql-vhost.port	= "PORTA"

SQL

SQL es un lenguaje declarativo para administrar bases de datos relacionales, que se utiliza (...) etc

TODO

  • SELECT
  • INSERT
  • UPDATE
  • DELETE
  • DROP
  • (...)

TODO

Los problemas surgen entonces por el hecho de que los sistemas de gestión de bases de datos que utilizan SQL suponen que los comandos insertados serán comandos conocidos por el administrador y bien gestionados por él. Esa suposición no siempre es cierta, ya que las fallas en los sistemas que interactúan con el sistema de BD pueden presentar vulnerabilidades, principalmente en la web, donde la interacción con el usuario es grande.

SQL Injection

Descargar herramienta