Was macht graphql-and-hidden-parameters?
GraphQL- und versteckte Parameter-Testplaybook. Verwenden Sie es bei der Untersuchung von Introspection, Batching, undokumentierten Feldern, versteckten Parametern, Schema-Missbrauch und GraphQL-Autorisierungslücken.
Übersicht
Dieses Playbook beschreibt Methoden zur Überprüfung von GraphQL-APIs auf Sicherheitslücken im Zusammenhang mit Introspection, Batching, versteckten Parametern, Schema-Exploration und Autorisierung.
Voraussetzungen
- GraphQL-Endpunkt-URL
- Grundlegende Kenntnisse in GraphQL und API-Sicherheit
- Tools wie curl, Postman, oder GraphQL-Client (z.B. GraphiQL oder Altair)
Testverfahren
1. Introspection-Test
Führen Sie eine Introspection-Abfrage durch, um das Schema zu extrahieren:
{
__schema {
types {
name
fields {
name
type {
name
kind
}
}
}
}
}
2. Batching-Angriff
Testen Sie, ob Batching erlaubt ist und wie viele Anfragen gleichzeitig gesendet werden können:
curl -X POST <ENDPOINT> -H "Content-Type: application/json" -d '[{"query":"{__typename}"},{"query":"{__typename}"}]'
3. Suche nach versteckten Parametern
Durchsuchen Sie die API nach nicht dokumentierten Feldern oder Parametern, die versehentlich öffentlich gemacht wurden.
4. Autorisierungstests
Überprüfen Sie, ob geschützte Felder oder Mutationen ohne gültiges Token zugänglich sind.
Hinweise
- Alle Tests sollten nur auf Systemen durchgeführt werden, für die Sie eine schriftliche Genehmigung haben.
- Dokumentieren Sie alle Ergebnisse sorgfältig für einen späteren Bericht.