¿Qué hace graphql-and-hidden-parameters?
Manual de pruebas de GraphQL y parámetros ocultos. Úselo al explorar introspección, batching, campos no documentados, parámetros ocultos, abuso de esquemas y brechas de autorización en GraphQL.
Descripción
Este skill proporciona una guía paso a paso para realizar pruebas de seguridad en APIs GraphQL, enfocándose en:
- Introspección: Descubrir el esquema completo de la API, incluyendo tipos, campos, argumentos y directivas.
- Batching: Enviar múltiples consultas en una sola solicitud para aumentar la eficiencia o eludir límites de velocidad.
- Campos no documentados: Identificar campos que no aparecen en la documentación pública pero que pueden estar disponibles en el esquema.
- Parámetros ocultos: Buscar argumentos no documentados en consultas y mutaciones.
- Abuso de esquema: Explotar la estructura del esquema para obtener datos no autorizados.
- Brechas de autorización: Probar si la API valida correctamente los permisos a nivel de campo o consulta.
Uso
- Identificar el endpoint de GraphQL: Normalmente termina en
/graphqlo/v1/graphql. - Probar introspección: Enviar una consulta de introspección estándar:
{ __schema { types { name fields { name } } } }. - Analizar el esquema: Examinar los tipos y campos devueltos para encontrar información sensible o funcionalidades ocultas.
- Probar batching: Enviar una solicitud con múltiples consultas en un array JSON:
[ { "query": "..." }, { "query": "..." } ]. - Buscar parámetros ocultos: Utilizar fuzzing en argumentos de campos comunes, como
id,limit,filter,order. - Probar autorización: Intentar acceder a campos que requieren autenticación sin proporcionar credenciales válidas.
Ejemplo de consulta de introspección
{
__schema {
types {
name
fields {
name
type {
name
kind
}
}
}
}
}
Notas
- Algunas APIs deshabilitan la introspección en producción. Puede intentar usar herramientas como GraphQL Voyager para analizar el esquema si está disponible.
- El batching puede ser limitado por la API. Pruebe con diferentes tamaños de lote.
- Los parámetros ocultos a menudo se descubren mediante la revisión del código fuente o la documentación interna.