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-2025-13673 — CVE-2025-13673 : Injection SQL dans Tutor LMS — PoC + laboratoire Docker | Kitploit
Outils/GitHubGitHub/dinosn/cve-2025-13673
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationLabs et Pratique
GitHubdinosn/cve-2025-13673

CVE-2025-13673

CVE-2025-13673 : Injection SQL dans Tutor LMS — PoC + laboratoire Docker

Voir le dépôt
2il y a 3 moisPas 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-2025-13673 — Laboratoire d'injection SQL Tutor LMS

Injection SQL non authentifiée dans le plugin WordPress Tutor LMS (<= 3.9.6) via le paramètre coupon_code.

Démarrage rapide

root@kitploit:~
# 1. Clone and start the lab
git clone https://github.com/dinosn/CVE-2025-13673.git
cd CVE-2025-13673
./setup.sh            # Deploys WordPress + Tutor LMS 3.9.3

# 2. Run the exploit
pip install requests   # only dependency

# Unauthenticated (time-based blind — no credentials needed)
python3 exploit.py http://localhost:8080

# Authenticated (UNION-based — instant extraction)
python3 exploit.py http://localhost:8080 -u testuser -p test123 --all

Détails de la vulnérabilité

ChampValeur
CVECVE-2025-13673
Versions concernéesTutor LMS <= 3.9.6
Corrigé3.9.7
TypeInjection SQL (CWE-89)
CVSS7.5 / 9.3
AuthentificationAucune (aveugle) / Abonné (UNION)

Cause racine

QueryHelper::prepare_where_clause() construit les clauses SQL WHERE par concaténation brute de chaînes :

root@kitploit:~
// helpers/QueryHelper.php — VULNERABLE
$value = is_numeric( $value ) ? $value : "'" . $value . "'";

Aucun échappement. Un guillemet simple sort du littéral et permet d'exécuter du SQL arbitraire.

Vecteurs d'attaque

Non authentifié : POST / avec tutor_action=tutor_pay_now. Le hook init de WordPress déclenche cette action pour tous les visiteurs. Le _tutor_nonce est intégré dans chaque page frontale et reste valide pour les sessions anonymes. Extraction de données via SLEEP().

Abonné et plus : POST /wp-admin/admin-ajax.php avec action=tutor_apply_coupon. Renvoie un JSON contenant les données injectées par UNION SELECT — deux colonnes sont reflétées dans la réponse pour une extraction instantanée.

Correctif (3.9.7)

root@kitploit:~
- $val = is_numeric( $val ) ? $val : "'" . $val . "'";
+ // Value now passed through $wpdb->prepare('%s', $value)

Utilisation de l'exploit

root@kitploit:~
usage: exploit.py [-h] [-u USERNAME] [-p PASSWORD] [--course-id COURSE_ID]
                  [--dump-users] [--db-info] [--options] [--all]
                  [--delay DELAY]
                  url

Modes:
  Default (no -u/-p):  Unauthenticated time-based blind SQLi
  With -u/-p:          Authenticated UNION-based (fast)

Examples:
  exploit.py http://target                            # unauth blind
  exploit.py http://target -u student -p pass --all   # auth UNION

Tester différentes versions

root@kitploit:~
# Test version 3.9.5 (has esc_sql partial mitigation)
./setup.sh 3.9.5

# Test version 3.9.7 (should be fixed)
./setup.sh 3.9.7

Fichiers

FichierDescription
exploit.pyPoC double mode : aveugle non authentifié + UNION authentifié
setup.shDéploiement du laboratoire en une commande
docker-compose.ymlWordPress 6.7 + MySQL 8.0

Références

  • Avis Wordfence
  • Avis Patchstack

Avertissement

Uniquement à des fins de tests de sécurité autorisés et à des fins éducatives.

Télécharger l’outil