🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónLDAP y otras consultas armadas con texto
5 tareas · 35 min · Principiante
El directorio corporativo responde a filtros de búsqueda, y un filtro es texto con estructura propia: tiene operadores, condiciones y paréntesis que delimitan dónde empieza y termina cada parte. Si ese texto se arma uniendo trozos con lo que escribió alguien, vuelve la misma causa del módulo. Esta sala lee las tres pantallas de Editorial Cachipay que consultan el directorio, el registro del propio servidor de directorio y la tabla de cuentas de servicio, y cierra con la corrección y con las otras consultas que se arman igual. Nadie se conecta al directorio.
Objetivo de la sala
El directorio corporativo responde a filtros de búsqueda, y un filtro es texto con estructura propia: tiene operadores, condiciones y paréntesis que delimitan dónde empieza y termina cada parte. Si ese texto se arma uniendo trozos con lo que escribió alguien, vuelve la misma causa del módulo. Esta sala lee las tres pantallas de Editorial Cachipay que consultan el directorio, el registro del propio servidor de directorio y la tabla de cuentas de servicio, y cierra con la corrección y con las otras consultas que se arman igual. Nadie se conecta al directorio.Cuando una aplicación busca personas en el directorio, le envía al servidor un filtro: una expresión que combina condiciones sobre atributos. Esa expresión se analiza antes de buscar, igual que una consulta de base de datos, y tiene caracteres que significan algo —delimitar una condición, combinar varias, comparar de forma aproximada—.
Si la aplicación construye el filtro pegando el texto de la caja de búsqueda, lo que la persona escriba puede cambiar la estructura de la expresión en vez de limitarse a ser el valor buscado. El resultado habitual no es un error visible para quien busca, sino una búsqueda que devuelve lo que no debía o un filtro que el servidor rechaza. MITRE lo cataloga como CWE-90.
Responde para continuar
¿Qué hace que un filtro de directorio sea vulnerable?
Ver pista de ayuda
Vuelve a la causa del módulo: quién decide la estructura de lo que lee el intérprete.
Las tres pantallas consultan el mismo directorio y cada una arma su filtro de una forma. Una deja que la biblioteca prepare el dato antes de insertarlo, otra manda el dato como valor de un filtro fijo, y la tercera une texto. Lee la columna que lo dice.
Responde para continuar
Escribe el identificador de la búsqueda cuyo filtro se arma uniendo texto.
Ver pista de ayuda
Ejecuta `SELECT * FROM busquedas` y compara la tercera columna de las tres filas.
El registro del servidor de directorio es la evidencia que confirma la lectura del código, y casi nunca se pide en un encargo. Cuando el servidor no entiende la expresión que recibe, lo anota: una condición que no cierra, una condición de más. Quien busca a un compañero por su apellido no produce esos errores nunca.
Cuenta cuántas entradas del periodo terminaron en error de filtro.
Responde para continuar
¿Cuántas entradas del registro terminaron en un error de sintaxis del filtro?
Ver pista de ayuda
Ejecuta `SELECT fecha_hora, filtro_recibido FROM registro WHERE resultado = 'error de sintaxis en el filtro'` y cuenta las filas.
El alcance de este hallazgo lo marca la cuenta con la que la aplicación consulta el directorio. Una cuenta que solo lee los atributos públicos de las personas limita el daño a ver de más dentro de esa rama; una cuenta que escribe en todo el árbol convierte el mismo fallo en otra cosa, y así hay que escribirlo.
Responde para continuar
Escribe la cuenta de servicio con la que se conecta la pantalla del hallazgo.
Ver pista de ayuda
Ejecuta `SELECT * FROM busquedas` y mira la última columna de esa fila.
La corrección es la del módulo entero, con el nombre que le da cada tecnología: usar la interfaz que la biblioteca de directorio ofrece para insertar un valor en un filtro, que se encarga de que ese valor no pueda cambiar la estructura. Y por separado, bajar los permisos de la cuenta de servicio a lo que la pantalla necesita, que es un hallazgo propio aunque el filtro se arregle mañana.
La misma causa aparece en otras consultas que se arman con texto y que conviene buscar en el mismo encargo: las expresiones de búsqueda sobre documentos XML, los filtros de las bases de datos que reciben documentos en lugar de tablas, y las cabeceras de un correo construidas con lo que escribió alguien en un formulario de contacto. Cambia el intérprete, no la causa.
Responde para continuar
¿Qué par de correcciones escribes para el panel interno?
Ver pista de ayuda
Una corrección quita la causa y la otra reduce lo que se alcanza desde ahí.
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.