Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
lighty-sqlinj-demo — Démonstration éducative d'exploitation de l'injection SQL CVE-2014-2323 dans mod_mysql_vhost de lighttpd, avec un laboratoire basé sur Docker pour l'analyse pratique des vulnérabilités et leur correction. | Kitploit
Outils/GitHubGitHub/cirocosta/lighty-sqlinj-demo
Sécurité des ConteneursAnalyse des VulnérabilitésExploitation d'Applications WebApprentissage et ÉducationLabs et Pratique
GitHubcirocosta/lighty-sqlinj-demo

lighty-sqlinj-demo

Démonstration éducative d'exploitation de l'injection SQL CVE-2014-2323 dans mod_mysql_vhost de lighttpd, avec un laboratoire basé sur Docker pour l'analyse pratique des vulnérabilités et leur correction.

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt
89il y a 10 ansPas encore vérifié

title: Ep4 - Vulnérabilité liée aux Réseaux members:

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

Vulnérabilité associée :

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

Confirmer : http://download.lighttpd.net/lighttpd/security/lighttpd_sa_2014_01.txt

  • Version affectée : 1.4.34

Présentation

  • Expliquer la faille
    • présenter le service à exploiter
    • où, dans le code source, se trouve la faille
    • correction de la faille
  • Préparer des démos relatives à l'exploit
    • Exploit
    • Appliquer la correction de la faille
    • Tenter d'exploiter à nouveau
  • lighttpd (lighty)
  • Hébergement Virtuel
    • Préparation d'un serveur Lighttpd
  • SQL
    • Injection SQL
  • Docker
    • Réseau des conteneurs
  • Démo !
    • Exploit
    • Vérification du correctif

lighttpd (lighty)

Le service à exploiter est Lighttpd. C'est un serveur web open-source (licence BSD) optimisé pour être léger et rapide. Il est apparu comme une 'preuve de concept' du fameux problème c10k (comment gérer 10 000 connexions simultanées sur un serveur), et a ainsi gagné une grande popularité à l'époque (2003), actuellement utilisé par Whatsapp.com, Xkcd et par le passé, Youtube. Son positionnement sur le marché est assez intéressant, comme le montre le graphique :

Posicionamento Lighttpd - Tráfego x Quantidade de Websites

Le serveur cherche à gérer le problème de nombreuses connexions en utilisant des mécanismes asynchrones via des événements (kqueue sous BSD, epoll sous Linux) réduisant le besoin de plusieurs threads, ce qui se traduit par une empreinte mémoire bien plus faible et une meilleure utilisation du CPU (stratégie également utilisée par les serveurs Nginx, dont l'utilisation a considérablement augmenté au fil des ans) :

Mercado Servidores

L'une des fonctionnalités de lighty est la gestion aisée des hôtes virtuels.

Hébergement Virtuel

Il s'agit d'une méthode utilisée pour héberger plusieurs noms de domaine dont la résolution se fait vers une même adresse IP, réduisant ainsi les coûts d'hébergement pour les entreprises souhaitant proposer des sites web, car il n'est pas nécessaire de réserver un serveur dédié pour chaque site.

La technique peut être basée sur IP (une interface par hôte) ou basée sur le nom (un nom par hôte, partageant l'interface) - explorée dans cette présentation.

Basé sur le nom

: utilise le 'Hostname' fourni par le client pour identifier quel service utiliser pour répondre en conséquence. Cette méthode présente deux difficultés : des complications pour gérer les sessions sécurisées (TLS) - la poignée de main doit être effectuée avant tout passage d'en-tête indiquant l'hôte au serveur, compliquant alors la détermination du certificat à présenter lors de la poignée de main. Une solution à ce problème est une extension de TLS appelée Server Name Indication (SNI) qui permet de présenter le nom au début de la poignée de main, permettant ainsi le choix du certificat correct. Un second problème concerne la tentative de connexion sans en-tête Host bien défini, entraînant une indétermination du service à utiliser.

Hôte virtuel - redes.io Hôte virtuel - mac0448.io

Basé sur IP

: utilise des IP séparés pour chaque application. Le serveur web est alors configuré pour plusieurs interfaces réseau physiques (ou virtuelles sous une même interface) et répond ensuite en fonction de l'adresse IP (de destination).

L'IP aliasing permet de créer des interfaces virtuelles pour chaque service.

Dans le cas d'une grande entreprise, il peut devenir complexe de gérer ce mappage selon le nombre de clients. Lighty offre donc un support pour l'utilisation d'une base de données à cette fin, comme nous le montrerons plus loin.

Avant cela, voyons comment faire "à la main" la configuration d'un serveur puis ajouter du vhosting.

Préparation d'un serveur Lighttpd

Préparer un serveur de base lighttpd est très simple. Il suffit de l'installer et de créer un fichier de configuration qui spécifie le port à utiliser, comment répondre à certaines requêtes et autres réglages.

Nous pouvons préparer un exemple de configuration qui ne fait que recevoir des requêtes de fichiers statiques (.html ou .txt) :

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

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

Imaginez maintenant que nous souhaitions créer une entreprise basée sur la vente de sites et offrir un nom de domaine propre à l'acheteur. Afin de minimiser les coûts, nous souhaitons alors créer des vhosts pour chaque client. Disons que le cours du réseau souhaite acquérir trois sites web : redes.io, mac0448.io et mac5910.io. Notre entreprise enregistre alors les domaines, pointant tous vers l'IP de notre unique serveur, avec une seule interface.

ps : pour simuler cela, nous pouvons modifier le fichier /etc/hosts :

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

Pour être capables de servir les différents sites web des clients en résolvant à partir d'une seule IP, nous pouvons alors configurer le serveur manuellement :

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/"
}

Mais, comme on peut l'imaginer, cela peut devenir un problème à mesure que nous souhaitons gérer de nombreux clients et fournir différentes configurations à chaque site web comme mentionné précédemment.

Avec le module mod_mysql_vhost, nous pouvons alors connecter notre serveur à une base de données mysql responsable de ce mappage. Nous spécifions alors le nom de la base de données, comment la trouver sur notre réseau et quelle commande utiliser pour effectuer la recherche.

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 est un langage déclaratif pour administrer des bases de données relationnelles, utilisé (...) etc

TODO

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

TODO

Télécharger l’outil