Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Graphql Kotlin | 1,582 | 3 | 4 hours ago | 98 | July 07, 2022 | 38 | apache-2.0 | Kotlin | ||
Libraries for running GraphQL in Kotlin | ||||||||||
Damn Vulnerable Graphql Application | 1,229 | 19 days ago | 1 | mit | JavaScript | |||||
Damn Vulnerable GraphQL Application is an intentionally vulnerable implementation of Facebook's GraphQL technology, to learn and practice GraphQL Security. | ||||||||||
Authorizer | 954 | 18 hours ago | 56 | mit | Go | |||||
Your data, your control. Fully open source, authentication and authorization. No lock-ins. Deployment in Railway in 120 seconds || Spin a docker image as a micro-service in your infra. Built in login page and Admin panel out of the box. | ||||||||||
Elide | 933 | 17 | 12 | 6 days ago | 197 | June 11, 2022 | 86 | other | Java | |
Elide is a Java library that lets you stand up a GraphQL/JSON-API web service with minimal effort. | ||||||||||
Cli | 820 | a month ago | 153 | July 07, 2022 | 5 | mpl-2.0 | TypeScript | |||
The universal GraphQL API and CSPM tool for AWS, Azure, GCP, K8s, and tencent. | ||||||||||
Graphql Cost Analysis | 636 | 26 | 6 | 4 months ago | 7 | January 27, 2019 | 25 | mit | JavaScript | |
A Graphql query cost analyzer. | ||||||||||
Pup | 558 | 3 months ago | 11 | JavaScript | ||||||
The Ultimate Boilerplate for Products. | ||||||||||
Clairvoyance | 502 | 11 days ago | 1 | August 20, 2022 | 20 | apache-2.0 | Python | |||
Obtain GraphQL API schema even if the introspection is disabled | ||||||||||
Stethoscope App | 448 | 10 months ago | 6 | apache-2.0 | JavaScript | |||||
A desktop application that checks security-related settings and makes recommendations for improvements without requiring central device management or automated reporting. | ||||||||||
Graphql Rate Limit | 346 | 6 | 3 | a year ago | 23 | October 25, 2021 | 3 | mit | TypeScript | |
Add Rate Limiting To Your GraphQL Resolvers 💂♀️ |
GraphQL Cop is a small Python utility to run common security tests against GraphQL APIs. GraphQL Cop is perfect for running CI/CD checks in GraphQL. It is lightweight, and covers interesting security issues in GraphQL.
GraphQL Cop allows you to reproduce the findings by providing cURL commands upon any identified vulnerabilities.
$ python graphql-cop.py -h
Usage: graphql-cop.py -t http://example.com -o json
Options:
-h, --help show this help message and exit
-t URL, --target=URL target url with the path - if a GraphQL path is not
provided, GraphQL Cop will iterate through a series of
common GraphQL paths
-H HEADER, --header=HEADER
Append Header(s) to the request '{"Authorization":
"Bearer eyjt"}' - Use multiple -H for additional
Headers
-o FORMAT, --output=FORMAT
json
-f, --force Forces a scan when GraphQL cannot be detected
-x, --proxy Sends the request through http://127.0.0.1:8080 proxy
-v, --version Print out the current version and exit
Test a website
$ python3 graphql-cop.py -t https://mywebsite.com/graphql
GraphQL Cop 1.1
Security Auditor for GraphQL
Dolev Farhi & Nick Aleks
Starting...
[HIGH] Introspection Query Enabled (Information Leakage)
[LOW] GraphQL Playground UI (Information Leakage)
[HIGH] Alias Overloading with 100+ aliases is allowed (Denial of Service)
[HIGH] Queries are allowed with 1000+ of the same repeated field (Denial of Service)
Test a website, dump to a parse-able JSON output, cURL reproduction command
python3 graphql-cop.py -t https://mywebsite.com/graphql -o json
{'curl_verify': 'curl -X POST -H "User-Agent: graphql-cop/1.2" -H '
'"Accept-Encoding: gzip, deflate" -H "Accept: */*" -H '
'"Connection: keep-alive" -H "Content-Length: 33" -H '
'"Content-Type: application/json" -d \'{"query": "query { '
'__typename }"}\' \'http://localhost:5013/graphql\'',
'description': 'Tracing is Enabled',
'impact': 'Information Leakage',
'result': False,
'severity': 'INFO',
'title': 'Trace Mode'},
{'curl_verify': 'curl -X POST -H "User-Agent: graphql-cop/1.2" -H '
'"Accept-Encoding: gzip, deflate" -H "Accept: */*" -H '
'"Connection: keep-alive" -H "Content-Length: 64" -H '
'"Content-Type: application/json" -d \'{"query": "query { '
'__typename @[email protected]@[email protected]@[email protected]@[email protected]@[email protected] }"}\' '
"'http://localhost:5013/graphql'",
'description': 'Multiple duplicated directives allowed in a query',
'impact': 'Denial of Service',
'result': True,
'severity': 'HIGH',
'title': 'Directive Overloading'}]
Test a website using graphql-cop
through a proxy (e.g. Burp Suite) with custom headers (e.g. Authorization):
$ python3 graphql-cop.py -t https://mywebsite.com/graphql --proxy --header '{"Authorization": "Bearer token_here"}'
GraphQL Cop 1.2
Security Auditor for GraphQL
Dolev Farhi & Nick Aleks
Starting...
[HIGH] Introspection Query Enabled (Information Leakage)
[LOW] GraphQL Playground UI (Information Leakage)
[HIGH] Alias Overloading with 100+ aliases is allowed (Denial of Service)
[HIGH] Queries are allowed with 1000+ of the same repeated field (Denial of Service)