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
Herramientas/GitHubGitHub/alkimcoskun/yordam-kutuphane-otomasyonunda-coklu-html-enjeksiyonu
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPhishingSeguridad Web
GitHubalkimcoskun/yordam-kutuphane-otomasyonunda-coklu-html-enjeksiyonu

Yordam-Kutuphane-Otomasyonunda-Coklu-HTML-Enjeksiyonu

CVE-2026-77818 - Yordam Kütüphane Otomasyon Sistemi - Inyección de HTML reflejado en tres puntos distintos, secuestro de la acción del formulario y robo de credenciales (CWE-79)

Ver Repositorio
hace 8h 11mAú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

Múltiple Inyección de HTML en Yordam-Kütüphane-Otomasyonunda

CVE-2026-77818 · CVSS 3.1 6.1 (Media) · Presidencia de Ciberseguridad · Publicado 2026-09-04 · TR-26-1011

Estado: Las vulnerabilidades se han corregido en la versión v22.2. Las instalaciones afectadas deben actualizarse a v22.2 o superior.

Resumen General

El Sistema de Automatización de Bibliotecas Yordam es un software comercial de automatización de bibliotecas y catálogo en línea (OPAC) ampliamente utilizado en bibliotecas universitarias, públicas e institucionales de Turquía. La instalación es on-premise; cada cliente ejecuta una copia separada en su institución.

En la versión v22.1 del producto, existen inyecciones de HTML reflejadas en tres puntos independientes. Las tres no requieren autenticación y las tres se activan con un solo enlace.

#PuntoCausa raíz
1Página de inicio de sesión, parámetro devamNo se aplica ningún escape
2Atributo value del campo de formulario ocultoDoble decodificación de URL después del escape
3Atributo name del campo de formulario ocultoEl escape se aplica solo al valor, no al nombre

Como las tres se encuentran en la misma versión del mismo producto y en la misma clase de vulnerabilidad, se han agrupado en una sola notificación y se han publicado bajo un único identificador CVE. En términos de impacto, el punto número 1 es el más grave.


1. Página de Inicio de Sesión — Parámetro devam

Este es el más crítico. El punto de inyección está directamente en la propia etiqueta HTML del formulario de autenticación.

El parámetro devam transporta la dirección a la que el usuario volverá después de iniciar sesión y llega codificado en hexadecimal — el valor 2f796f7264616d2f significa /yordam/. La aplicación decodifica este valor de hexadecimal y lo escribe en la etiqueta de apertura del formulario de inicio de sesión. No hay ningún proceso de escape en medio:

root@kitploit:~
<form class='girisForm collapse show ikiAdimliGiris' method='post'
      action='inc/islem.fm.inc.php'
      data-url='<ENTRADA DE USUARIO DECODIFICADA EN HEX>'
      autocomplete="off">

En la salida, los caracteres <, > y las comillas aparecen en bruto. Lo único que contiene el payload es que el atributo data-url está envuelto en comillas simples. Cuando se introduce una comilla simple dentro de la entrada, eso también termina: el atributo se cierra, la etiqueta <form> se cierra y el HTML escrito por el atacante reemplaza al formulario de autenticación de la página.

La acción del formulario es secuestrada. Aquí no se dibuja un formulario falso — el formulario propio de la aplicación se deja vacío y se cierra, e inmediatamente después se abre un nuevo <form> que lleva las mismas clases CSS. Como los campos de nombre de usuario, contraseña y código de verificación de la página son todos HTML original de la aplicación, permanecen dentro de este nuevo formulario. El usuario ve el formulario real, rellena el formulario real; la información introducida va al servidor del atacante. No hay ninguna diferencia visualmente distinguible.

El punto crítico: la inyección no ocurre en una página aleatoria, sino en la página donde ya se espera que el usuario introduzca su contraseña. En una inyección reflejada ordinaria, el atacante debe convencer a la víctima; aquí, la propia interfaz de la aplicación hace el trabajo de convencimiento.


2. Atributo value del Campo de Formulario Oculto — Doble Decodificación de URL

En la página de búsqueda, los valores de los parámetros GET se escriben en campos de formulario ocultos. En este punto se aplica escape — pero en el orden incorrecto.

El mismo valor q se utiliza en tres contextos distintos dentro de una sola respuesta, y cada uno tiene una profundidad de decodificación diferente:

ContextoDecodificaciónEstado
Cadena JS en bloque <script>1 vezSeguro
Cuadro de búsqueda principal <input value="…">1 vezSeguro
Campos de formulario ocultos <input type='hidden' value="…">2 vecesVulnerable

La secuencia de operaciones es la siguiente:

root@kitploit:~
Entrada del cliente   : %2522
  ↓ análisis de $_GET
Variable PHP          : %22
  ↓ filtro de entrada   → no ve contenido malicioso, no hay comillas presentes
  ↓ htmlspecialchars → no hay caracteres que escapar, sin cambios
  ↓ urldecode        → se decodifica %22
Impreso en la página  : "        ← comilla en bruto, salida del atributo

Mientras que el filtro de entrada y el escape operan en la primera capa de decodificación, la salida se alimenta de la segunda capa. Al comparar las versiones codificadas una y dos veces del mismo payload, la diferencia se ve claramente:

EnviadoRespuestaSalida del campo oculto
q=foo%22… (codificación única)302 Foundvalue="foo&quot;…" — el filtro lo captura
q=foo%2522… (doble codificación)200 OKvalue="foo"><…>" — HTML en bruto

La vulnerabilidad no es específica del parámetro q. El bloque que genera los campos ocultos itera sobre todos los parámetros GET de la solicitud; también se ha verificado en tip y alan.


3. Atributo name del Campo de Formulario Oculto — Inyección en el Nombre del Parámetro

El mismo bloque genera la siguiente estructura para cada parámetro GET:

root@kitploit:~
<input type='hidden' name="<NOMBRE DEL PARÁMETRO>" value="<VALOR DEL PARÁMETRO>"/>

El escape se aplica solo al lado de value. Al lado de name no se aplica en absoluto. En este punto tampoco se necesita doble codificación — la codificación única es suficiente, porque no hay ningún escape que sortear.

Un nombre de parámetro inventado se escribe directamente en bruto en el atributo name y se puede salir del atributo. Como el nombre del parámetro está bajo el control del atacante, no es necesario que sea un parámetro conocido por la aplicación.

Los puntos 2 y 3 de estas tres vulnerabilidades se originan en el mismo bloque de código, y este bloque se repite en seis formularios distintos: dilForm, adetForm, siralaForm, tkForm, ekForm, tmForm. Es decir, en una sola solicitud la inyección ocurre seis veces.

La naturaleza dinámica del bloque se ha verificado comparando la salida de dos solicitudes:

root@kitploit:~
Solicitud A: ?p=1&dil=0&alan=&tip=basit&gorunum=liste&q=…
Salida A: name="p" · name="alan" · name="tip" · name="gorunum" · name="q"

Solicitud B: ?p=2&dil=0&devam=…
Salida B: name="p" · name="devam"

Los campos generados no provienen de una lista fija, sino directamente de los parámetros de la solicitud. Por lo tanto, tanto el contenido escrito en el atributo name como en el value está bajo el control del atacante.


Impacto

Lo único que necesita el atacante es un enlace que la víctima abra. No necesita iniciar sesión ni tener una cuenta.

  • Robo de credenciales. A través del punto número 1, el destino de action del formulario de inicio de sesión se redirige al atacante. Verificado.
  • Contenido falso con la identidad de la institución. En la barra de direcciones aparece el propio dominio de la institución y un certificado TLS válido. Se pueden colocar anuncios falsos, campañas falsas y textos informativos falsos.
  • Alteración de contenido y redirección. Se puede modificar la apariencia de la página y trasladar al usuario a una dirección externa.

Dado que la plataforma afectada alberga las credenciales y los datos personales de los miembros de la biblioteca, es posible acceder a los registros de miembros a través de las cuentas comprometidas.

Por Qué las Protecciones Existentes No lo Detienen

La aplicación utiliza CSP y script-src y object-src están basados en nonce; es decir, el XSS clásico basado en scripts no funciona en estas páginas. A primera vista, esto parece reducir el hallazgo al nivel de "solo alteración de contenido".

La política completa es la siguiente:

root@kitploit:~
Content-Security-Policy: script-src 'nonce-...'; object-src 'nonce-...'; frame-ancestors 'self'

No hay form-action. Tampoco hay default-src — por lo tanto, no hay un valor predeterminado al que recurrir para las directivas no definidas. Resultado: el navegador no bloquea de ninguna manera que el formulario haga POST al servidor del atacante.

Para robar credenciales no es necesario ejecutar JavaScript. El HTML plano es suficiente, y el CSP no detiene el HTML plano.

Debilidades Relacionadas

Primaria

  • CWE-79 — Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Relacionadas

  • CWE-116 — Improper Encoding or Escaping of Output
  • CWE-174 — Double Decoding of the Same Data
  • CWE-172 — Encoding Error
  • CWE-451 — User Interface (UI) Misrepresentation of Critical Information

En el registro CVE, la debilidad primaria se clasifica como CWE-79. A nivel de causa raíz, CWE-116 es más descriptiva: la causa de los tres puntos es que el escape de salida o no se aplica en absoluto o se aplica en el orden incorrecto.

Cabe señalar que en este producto no se ejecutan scripts — la política script-src basada en nonce que envía el propio producto no lo permite, y el valor del nonce no se puede leer de forma cross-origin. El impacto real no es la ejecución de scripts, sino la inyección de HTML y el secuestro del formulario de inicio de sesión. La asignación de CAPEC-148 (Content Spoofing) se ha realizado por esta razón.

CWE-174 se aplica especialmente al punto número 2 — la decodificación por segunda vez de los mismos datos después del escape.

Severidad

Media — Puntuación base CVSS 3.1 6.1 (AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N)

El atacante no necesita ningún privilegio; como la víctima debe abrir el enlace preparado, la interacción del usuario es Requerida. El Scope se ha tomado como Changed porque el contenido inyectado se procesa en el contexto de seguridad del navegador.

Los tres puntos corresponden a la misma puntuación. En términos de impacto, el más grave es el punto número 1: como la inyección ocurre directamente en la propia etiqueta del formulario de autenticación, es posible el secuestro del destino de action del formulario y el robo de credenciales.

Versiones Afectadas

root@kitploit:~
Sistema de Automatización de Bibliotecas Yordam

Afectadas : v22.1 y anteriores
Corregidas : v22.2

La verificación se realizó en v22.1. Las vulnerabilidades no se deben a errores de configuración específicos de la institución, sino a componentes comunes de la interfaz del producto; afectan a todas las instalaciones de la misma familia de versiones. El estado de las versiones más antiguas debe ser evaluado por el fabricante.

Como las instalaciones son on-premise, incluso si el fabricante ha publicado la corrección, las instalaciones que no hayan aplicado la actualización seguirán afectadas.

Componente Afectado

#Punto finalPunto de salida
1GET /yordam/?p=2&dil=<n>&devam=<hex>Atributo data-url del formulario de inicio de sesión
2GET /yordam/?p=1&…&<parámetro>=<payload>Atributo value del campo de formulario oculto
3GET /yordam/?p=1&…&<payload>=1Atributo name del campo de formulario oculto

Los puntos 2 y 3 se originan en el mismo bloque generador de campos ocultos; el bloque se repite en los formularios dilForm, adetForm, siralaForm, tkForm, ekForm y tmForm.

Solución

Las vulnerabilidades han sido corregidas por el fabricante. La aplicación debe actualizarse a la versión v22.2 o superior.

Registro CVE

ID CVECVE-2026-77818
Asignador (CNA)TR-CERT (USOM) — Presidencia de Ciberseguridad de la República de Turquía
EstadoPUBLISHED
Reservado2026-08-21
Publicado2026-09-04
Aviso de SeguridadTR-26-1011
Título del Registro CVEReflected HTML Injection via Form Hijacking in Yordam Informatics's Library Automation System
CAPECCAPEC-148 — Content Spoofing

Fabricante: Yordam Bilgi Teknolojileri Danışmanlık Eğitim ve Elektronik Sistemler Sanayi ve Ticaret A.Ş.

Descubridor

Alkım Coşkun – Netlore Security

Cronograma de Divulgación

FechaEvento
2026-08-20Las vulnerabilidades fueron descubiertas y verificadas
2026-08-21Notificadas a la Presidencia de Ciberseguridad; se reservó el ID CVE
2026-09-04Se publicó CVE-2026-77818, se anunció el aviso de seguridad TR-26-1011
Descargar herramienta