Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CrackQL — Инструмент для тестирования проникновения GraphQL, который использует слабые лимиты скорости и анализ затрат для подбора учетных данных, обхода 2FA, перечисления пользователей и фаззинга операций с помощью пакетных псевдонимных запросов. | Kitploit
Инструменты/GitHubGitHub/nicholasaleks/crackql
Атаки на ПаролиЭксплуатация веб-приложенийТестирование безопасности APIФаззингТестирование на Проникновение
GitHubnicholasaleks/crackql

CrackQL

Инструмент для тестирования проникновения GraphQL, который использует слабые лимиты скорости и анализ затрат для подбора учетных данных, обхода 2FA, перечисления пользователей и фаззинга операций с помощью пакетных псевдонимных запросов.

Репозиторий
3493443 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CrackQL

CrackQL — это утилита для брутфорса паролей и фаззинга GraphQL.

CrackQL

CrackQL — универсальный инструмент для тестирования на проникновение GraphQL, который использует слабые ограничения скорости и контроля анализа стоимости для брутфорса учетных данных и фаззинга операций.

Содержание

  • Как это работает
  • Сценарии атак
    • Обход защиты
    • Брутфорс с распылением паролей
    • Обход двухфакторной аутентификации (OTP)
    • Перечисление учетных записей
    • Небезопасная прямая ссылка на объект (IDOR)
    • Общий фаззинг
  • Входные данные
  • Установка
  • Конфигурация
  • Разработчики
  • Упоминания

Как это работает?

CrackQL автоматически группирует один GraphQL-запрос или мутацию в несколько псевдонимных операций. Он определяет количество псевдонимов на основе входных переменных из CSV. После программной генерации пакетного GraphQL-документа CrackQL отправляет полезные нагрузки целевому GraphQL API и анализирует результаты и ошибки.

Сценарии атак

CrackQL может использоваться для широкого спектра GraphQL-атак, поскольку программно генерирует полезные нагрузки на основе списка динамических входных данных.

Обход защиты

В отличие от Burp Intruder, который отправляет запрос для каждой уникальной полезной нагрузки, CrackQL обходит традиционные механизмы защиты от мониторинга ограничения скорости HTTP API, используя несколько псевдонимных запросов для помещения больших наборов учетных данных в один HTTP-запрос. Для обхода защиты на основе анализа стоимости запросов CrackQL может быть оптимизирован для использования серии меньших пакетных операций (-b), а также временной задержки (-D).

Брутфорс с распылением паролей

CrackQL отлично подходит для развертываний GraphQL, использующих встроенные операции аутентификации GraphQL (например, GraphQL Authentication Module). Пример ниже с распылением паролей работает против DVGA со словарём sample-inputs/users-and-passwords.csv.

sample-queries/login.graphql

root@kitploit:~
mutation {
  login(username: {{username|str}}, password: {{password|str}}) {
    accessToken
  }
}

Обход двухфакторной аутентификации (OTP)

С помощью CrackQL можно обойти двухфакторную аутентификацию, отправив все токены OTP (одноразовые пароли).

sample-queries/otp-bypass.graphql

root@kitploit:~
mutation {
  twoFactor(otp: {{otp|int}}) {
    accessToken
  }
}

Перечисление учетных записей

CrackQL также может использоваться для атак перечисления с целью обнаружения действительных идентификаторов пользователей, имён пользователей и адресов электронной почты.

sample-queries/enumeration.graphql

root@kitploit:~
query {
  signup(email: {{email|str}}, password: {{password|str}}) {
    user {
      email
    }
  }
}

Небезопасная прямая ссылка на объект (IDOR)

CrackQL можно использовать для перебора большого количества потенциальных уникальных идентификаторов с целью утечки информации об объектах.

sample-queries/idor.graphql

root@kitploit:~
query {
  profile(uuid: {{uuid|int}}) {
    name
    email
    picture
  }
}

Общий фаззинг

CrackQL может использоваться для операций общего фаззинга ввода, например, отправки потенциальных полезных нагрузок SQLi и XSS.

Входные данные

CrackQL генерирует полезные нагрузки на основе входных переменных, определённых в CSV-файле. Требуется, чтобы заголовок CSV совпадал с именем входа.

sample-inputs/usernames_and_passwords.csv

root@kitploit:~
username, password
admin, admin
admin, password
admin, pass
admin, pass123
admin, password123
operator, operator
operator, password
operator, pass
operator, pass123
operator, password123

Допустимые типы ввода

  • str
  • int
  • float

Установка

Требования

  • Python3
  • Requests
  • GraphQL
  • Jinja

Клонирование репозитория

root@kitploit:~
git clone [email protected]:nicholasaleks/CrackQL.git

Получение зависимостей

pip install -r requirements.txt

Запуск CrackQL

python3 CrackQL.py -h

root@kitploit:~
Usage: python3 CrackQL.py -t http://example.com/graphql -q sample-queries/login.graphql -i sample-inputs/usernames_and_passwords.csv

Options:
  -h, --help            show this help message and exit
  -t URL, --target=URL  Target url with a path to the GraphQL endpoint
  -q QUERY, --query=QUERY
                        Input query or mutation operation with variable
                        payload markers
  -i INPUT_CSV, --input-csv=INPUT_CSV
                        Path to a csv list of arguments (i.e. usernames,
                        emails, ids, passwords, otp_tokens, etc.)
  -d DELIMITER, --delimiter=DELIMITER
                        CSV input delimiter (default: ",")
  -o OUTPUT_DIRECTORY, --output-directory=OUTPUT_DIRECTORY
                        Output directory to store results (default:
                        ./results/[domain]_[uuid]/
  -b BATCH_SIZE, --batch-size=BATCH_SIZE
                        Number of batch operations per GraphQL document
                        request (default: 100)
  -D DELAY, --delay=DELAY
                        Time delay in seconds between batch requests (default:
                        0)
  --verbose             Prints out verbose messaging
  -v, --version         Print out the current version and exit.

Конфигурация

Используйте config.py для установки HTTP-куки, заголовков или прокси, если конечная точка требует аутентификации.

Разработчики

  • Nick Aleks
  • Dolev Farhi

Упоминания

  • Kitploit
Скачать инструмент