Skip to Content
logologo
AI Incident Database
Open TwitterOpen RSS FeedOpen FacebookOpen LinkedInOpen GitHub
Open Menu
Descubrir
Enviar
  • Bienvenido a la AIID
  • Descubrir Incidentes
  • Vista espacial
  • Vista Tabular
  • Vista de lista
  • Entidades
  • Taxonomías
  • Enviar Informes de Incidentes
  • Ranking de Reportadores
  • Blog
  • Resumen de noticias de IA
  • Control de Riesgos
  • Incidente aleatorio
  • Registrarse
Colapsar
Descubrir
Enviar
  • Bienvenido a la AIID
  • Descubrir Incidentes
  • Vista espacial
  • Vista Tabular
  • Vista de lista
  • Entidades
  • Taxonomías
  • Enviar Informes de Incidentes
  • Ranking de Reportadores
  • Blog
  • Resumen de noticias de IA
  • Control de Riesgos
  • Incidente aleatorio
  • Registrarse
Colapsar

Problema 6145

Incidentes Asociados

Incidente 11865 Reportes
Reported Public Exposure of Over 100,000 LLM Conversations via Share Links Indexed by Search Engines and Archived

Loading...
He eliminado todos los chats públicos de LLM para que no tengas que hacerlo tú mismo.
julian-b.xyz · 2025

Tras todo el revuelo en torno a los enlaces compartibles de LLM esta semana, me animé a investigar más a fondo. El viernes, Google dejó de indexar los enlaces compartibles de ChatGPT, y varios otros proveedores nunca fueron indexados. Sin embargo, tras ver que archive.org mantenía su propio registro, me picó la curiosidad por ver si otros proveedores también estaban guardados allí.

Como pueden ver en la captura de pantalla anterior, efectivamente lo estaban. Con Archive.org, ahora podemos obtener los enlaces compartibles de:

  • Grok

  • ChatGPT

  • Mistral

  • Qwen

  • Claude

  • Copilot

Y seguramente más, aunque para este artículo me he centrado exclusivamente en estos proveedores.

Al navegar a la página archvie.org de Burp Suite, descubrí que todas las URL indexadas se podían recuperar mediante una llamada a la API:

https://web.archive.org/web/timemap/json?url=chatgpt.com%2Fshare&matchType=prefix&collapse=urlkey&output=json&fl=original%2Cmimetype%2Ctimestamp%2Cendtimestamp%2Cgroupcount%2Cuniqcount&filter=!statuscode%3A%5B45%5D..&limit=1000000&_=1754224717183

Con esto, pudimos ejecutar un wget simple en el endpoint, guardando el contenido en nuestro host local. Luego, buscamos el patrón de URL de cada proveedor y enviamos el resultado a un archivo específico para cada LLM.

En total, recopilamos 143.142 enlaces compartidos cuyo contenido pudimos recuperar. A continuación, se detalla cada uno:

Descubrí que cada proveedor tenía un método diferente para recuperar el historial de chat del enlace compartido. Algunos consistían en una simple consulta GET al enlace compartido, mientras que otros realizaban una llamada API a otro endpoint. Para determinar cómo se recuperó, revisé algunas URL y localicé el contenido del chat en mi historial de Burp Suite, actualizando las URL donde fue necesario.

Arriba se muestra el punto final utilizado por Qwen LLM de Alibaba.

¡Arriba se muestra el punto final utilizado por Copilot!

Con los puntos finales específicos para los chats, realicé una simple búsqueda de coincidencias y reemplazos en los archivos que contenían las URL que solicitaríamos.

A continuación, se realizó la tarea de curling de cada uno de estos puntos finales y escribir la salida en un archivo dentro del directorio, una tarea bastante sencilla.

Algunos proveedores exigían pasar una verificación de Cloudflare antes de mostrar los datos. Para solucionar esto, creé un script rápido de Python con Cloudscraper, que funciona bastante bien.


importar cloudscraper

ARCHIVO_DE_ENTRADA = ''
ARCHIVO_DE_SALIDA = ''

scraper = cloudscraper.create_scraper()
scraper.headers.update({
"Agente-Usuario": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/138.0.0.0 Safari/537.36",
})

última_url_correcta = Ninguna

con abrir(ARCHIVO_DE_ENTRADA, 'r') como archivo de entrada, abrir(ARCHIVO_DE_SALIDA, 'w') como archivo de salida:
para línea en archivo de entrada:
url = line.strip()
si no es url:
continuar

print(f"➡️ Solicitando: {url}")
try:
respuesta = scraper.get(url)

si response.status_code == 403:
print(f"\n❌ 403 Prohibido - deteniendo.\nÚltima URL correcta: {last_successful_url}")
break

outfile.write(f"===== {url} =====\n")
outfile.write(response.text + "\n\n")
last_successful_url = url

except Exception as e:
print(f"⚠️ Error fetching {url}: {e}")
continue

Desafortunadamente, usar algo como Trufflehog en este conjunto de datos no funcionó muy bien. En su lugar, tuve que ejecutar grep e intentar revisar manualmente los resultados para ver si algún dato podía ser útil para un atacante. Con un par de expresiones regulares, pude encontrar los ID de las claves de acceso de AWS, un token de la API de replicación y más. Aún queda una gran cantidad de datos por analizar y es muy probable que en los próximos días se encuentre mucha más información que valga la pena mencionar en futuras actualizaciones. Por ahora, aquí hay un resumen rápido. Vistazo:

   

Si bien estos proveedores informan a sus usuarios que Los enlaces compartidos son públicos. Creo que la mayoría de quienes han usado esta función no esperaban que cualquiera pudiera encontrarlos, y mucho menos indexarlos y acceder fácilmente a ellos. Esto podría ser una fuente de datos muy valiosa tanto para atacantes como para miembros de equipos rojos. Gracias a esto, ahora puedo buscar en el conjunto de datos empresas objetivo en cualquier momento para ver si los empleados han divulgado información confidencial accidentalmente.

Al revisar los resultados de los chats de Claude, noté que cada uno identificaba al usuario que los creó e incluía su nombre completo.

[~] ¡Un agradecimiento especial a SyndromeImposter y MasterSplinter por su ayuda!

Leer la Fuente

Investigación

  • Definición de un “Incidente de IA”
  • Definición de una “Respuesta a incidentes de IA”
  • Hoja de ruta de la base de datos
  • Trabajo relacionado
  • Descargar Base de Datos Completa

Proyecto y Comunidad

  • Acerca de
  • Contactar y Seguir
  • Aplicaciones y resúmenes
  • Guía del editor

Incidencias

  • Todos los incidentes en forma de lista
  • Incidentes marcados
  • Cola de envío
  • Vista de clasificaciones
  • Taxonomías

2024 - AI Incident Database

  • Condiciones de uso
  • Política de privacidad
  • Open twitterOpen githubOpen rssOpen facebookOpen linkedin
  • e1b50cd