
GraphQL-инструментарий для автоматизированного тестирования безопасности
Graph Crawler — это самый мощный инструмент автоматизированного тестирования для любой конечной точки GraphQL.
НОВОЕ: Может искать конечные точки за вас, используя мощный инструмент Graphinder от Escape Technology. Просто укажите домен и добавьте опцию '-e', и Graphinder выполнит перечисление поддоменов + поиск популярных директорий для конечных точек GraphQL. После всего этого GraphCrawler возьмёт на себя управление и обработает каждую находку. Если схему невозможно проинтроспектировать, вы можете предоставить её в виде json-файла с опцией '-s'.
Он выполнит проверку, включена ли мутация, проверит доступные чувствительные запросы, такие как пользователи и файлы, а также протестирует любые простые запросы, которые найдёт, чтобы узнать, требуется ли аутентификация.
Если интроспекция не включена на конечной точке, он проверит, является ли это Apollo Server, и затем сможет запустить Clairvoyance для подбора и получения предложений, чтобы попытаться построить схему самостоятельно. (Подробнее об этом см. в проекте Clairvoyance). Затем он оценит находки по шкале от 1 до 10, где 10 — самый критический уровень.
Если вы хотите копнуть глубже в схему, вы также можете использовать graphql-path-enum для поиска путей к определённым типам, таким как идентификаторы пользователей, адреса электронной почты и т.д.
Надеюсь, это сэкономит вам столько же времени, сколько сэкономило мне.
python graphCrawler.py -u https://test.com/graphql/api -o <fileName> -a "<headers>"
██████╗ ██████╗ █████╗ ██████╗ ██╗ ██╗ ██████╗██████╗ █████╗ ██╗ ██╗██╗ ███████╗██████╗
██╔════╝ ██╔══██╗██╔══██╗██╔══██╗██║ ██║██╔════╝██╔══██╗██╔══██╗██║ ██║██║ ██╔════╝██╔══██╗
██║ ███╗██████╔╝███████║██████╔╝███████║██║ ██████╔╝███████║██║ █╗ ██║██║ █████╗ ██████╔╝
██║ ██║██╔══██╗██╔══██║██╔═══╝ ██╔══██║██║ ██╔══██╗██╔══██║██║███╗██║██║ ██╔══╝ ██╔══██╗
╚██████╔╝██║ ██║██║ ██║██║ ██║ ██║╚██████╗██║ ██║██║ ██║╚███╔███╔╝███████╗███████╗██║ ██║
╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚══╝╚══╝ ╚══════╝╚══════╝╚═╝ ╚═╝
Опция вывода не обязательна, и по умолчанию вывод будет в schema.json 2. В Docker Примечание: Поскольку GraphCrawler использует некоторые опции, которым нужны файлы для ввода или которые создают вывод, рекомендуется хранить все эти файлы в рабочей директории и монтировать её по пути контейнера /workspace. Весь ваш вывод будет сохранён в эту смонтированную директорию.
docker build -t graphcrawler:1.2 .
docker run -v /path_to_workspace:/workspace -it graphcrawler:1.2 -u https://test.com/graphql/api -o <filename> -a "<headers>"
Список слов из google-10000-english