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

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

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

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

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

Категории

Все категории
Loading categories
gotestwaf — Проект с открытым исходным кодом на Golang для оценки различных инструментов безопасности API и WAF на предмет логики обнаружения и обходов. | Kitploit
Инструменты/GitHubGitHub/wallarm/gotestwaf
Сканеры уязвимостейСканеры веб-уязвимостейТестирование безопасности APIОбход WAFВеб-безопасностьТестирование на ПроникновениеБезопасность APIТоп в Безопасность API №11Топ в Тестирование безопасности API №11Топ в Обход WAF №3
1.8k2605425 дней назадПроверено Kitploit
GitHubwallarm/gotestwaf

gotestwaf

Проект с открытым исходным кодом на Golang для оценки различных инструментов безопасности API и WAF на предмет логики обнаружения и обходов.

РепозиторийСайт

Популярное

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

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

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

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

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

GoTestWAF Black Hat Arsenal USA 2022

GoTestWAF — это инструмент для моделирования атак на API и OWASP, поддерживающий широкий спектр протоколов API, включая REST, GraphQL, gRPC, SOAP, XMLRPC и другие.

Он был разработан для оценки решений по обеспечению безопасности веб-приложений, таких как прокси-серверы безопасности API, межсетевые экраны веб-приложений (WAF), IPS, шлюзы API и другие.


  • Как это работает
  • Требования
  • Быстрый старт с Docker
  • Проверка результатов оценки
  • Демонстрации
  • Другие способы запуска GoTestWAF
  • Параметры конфигурации
  • Запуск с набором регрессионных тестов OWASP Core Rule Set

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

GoTestWAF генерирует вредоносные запросы, используя закодированные полезные нагрузки, размещённые в различных частях HTTP-запросов: в теле, заголовках, параметрах URL и т. д. Сгенерированные запросы отправляются на URL решения по обеспечению безопасности приложений, указанный при запуске GoTestWAF. Результаты оценки решения по обеспечению безопасности записываются в файл отчёта, создаваемый на вашей машине.

Условия генерации запросов по умолчанию определены в папке testcases в YAML-файлах следующего формата:```yaml payload:

  • '"union select -7431.1, name, @aaa from u_base--w-'
  • "'or 123.22=123.22"
  • "' waitfor delay '00:00:10'--"
  • "')) or pg_sleep(5)--" encoder:
  • Base64Flat
  • URL
  • JSUnicode placeholder:
  • URLPath
  • URLParam
  • Header type: SQL Injection
* `payload` — это образец вредоносной атаки (например, XSS-полезная нагрузка вида ```<script>alert(111)</script>``` или что-то более сложное).
Поскольку для полезных нагрузок требуется формат строки YAML, они должны быть [закодированы как бинарные данные](https://yaml.org/type/binary.html).

* `encoder` — это кодировщик, применяемый к полезной нагрузке перед её помещением в HTTP-запрос. Возможные кодировщики:

    * Base64
    * Base64Flat
    * JSUnicode
    * URL
    * Plain (чтобы оставить строку полезной нагрузки как есть)
    * XML Entity

* `placeholder` — это место внутри HTTP-запроса, куда следует поместить закодированную полезную нагрузку. Возможные плейсхолдеры:

    * gRPC
    * Header
    * UserAgent
    * RequestBody
    * JSONRequest
    * JSONBody
    * HTMLForm
    * HTMLMultipartForm
    * SOAPBody
    * XMLBody
    * URLParam
    * URLPath
    * RawRequest

    Плейсхолдер `RawRequest` позволит вам выполнить произвольный HTTP-запрос. Полезная нагрузка подставляется путём замены строки `{{payload}}` в URL-пути, заголовках или теле. Поля плейсхолдера `RawRequest`:

    * `method`
    * `path`
    * `headers`
    * `body`

    Обязательные поля для плейсхолдера `RawRequest`:
    
    * поле `method`

    Пример:
    
    ```yaml
    payload:
      - test
    encoder:
      - Plain
    placeholder:
      - RawRequest:
          method: "POST"
          path: "/"
          headers:
            Content-Type: "multipart/form-data; boundary=boundary"
          body: |
            --boundary
            Content-disposition: form-data; name="field1"
            
            Test
            --boundary
            Content-disposition: form-data; name="field2"
            Content-Type: text/plain; charset=utf-7
            
            Knock knock.
            {{payload}}
            --boundary--
    type: RawRequest test
    ```

* `type` — это имя всей группы полезных нагрузок в файле. Оно может быть произвольным, но должно отражать тип атак в файле.

Генерация запросов — это трёхэтапный процесс, включающий перемножение количества полезных нагрузок на количество кодировщиков и плейсхолдеров.
Допустим, вы определили 2 **полезные нагрузки**, 3 **кодировщика** (Base64, JSUnicode и URL) и 1 **плейсхолдер** (URLParameter — параметр HTTP GET).
В этом случае GoTestWAF отправит 2x3x1 = 6 запросов в рамках одного тест-кейса.

При запуске GoTestWAF вы также можете выбрать тест-кейсы из двух встроенных: OWASP Top-10, OWASP-API,
или собственные (используя [опцию конфигурации](#configuration-options) `testCasePath`).

## Требования

* GoTestwaf поддерживает все популярные операционные системы (Linux, Windows, macOS) и может быть собран нативно,
если в системе установлен [Go](https://golang.org/doc/install). Если вы хотите запускать GoTestWaf нативно,
убедитесь, что у вас есть веб-браузер Chrome, чтобы иметь возможность генерировать PDF-отчёты. Если у вас нет Chrome,
вы можете создать отчёт в формате HTML.
* Если вы запускаете GoTestWAF как Docker-контейнер, убедитесь, что у вас [установлен и настроен Docker](https://docs.docker.com/get-docker/),
а GoTestWAF и оцениваемое решение безопасности приложений подключены к одной и той же [сети Docker](https://docs.docker.com/network/).
* Для успешного запуска GoTestWAF убедитесь, что IP-адрес машины, на которой запущен GoTestWAF, внесён в белый список
на машине, где работает решение безопасности приложений.

## Быстрый старт с Docker

Приведённые ниже шаги описывают загрузку и запуск GoTestWAF с минимальной конфигурацией на Docker.

1.  Загрузите [образ GoTestWAF](https://hub.docker.com/r/wallarm/gotestwaf) из Docker Hub:

    ```
    docker pull wallarm/gotestwaf
    ```

2.  Запустите образ GoTestWAF:

    ```sh
    docker run --rm --network="host" -it -v ${PWD}/reports:/app/reports \
        wallarm/gotestwaf --url=<EVALUATED_SECURITY_SOLUTION_URL>
    ```

    При необходимости вы можете заменить `${PWD}/reports` на путь к другой папке, используемой для размещения отчёта об оценке.

    Если вы не хотите опционально отправлять отчёт по электронной почте, просто нажмите Enter после появления сообщения с запросом электронной почты, или вы можете использовать --noEmailReport, чтобы пропустить это сообщение:

    ```sh
    docker run --rm --network="host" -v ${PWD}/reports:/app/reports \
        wallarm/gotestwaf --url=<EVALUATED_SECURITY_SOLUTION_URL> --noEmailReport
    ```

    Если оцениваемый инструмент безопасности доступен извне, вы можете пропустить опцию `--network="host"`. Эта опция обеспечивает взаимодействие Docker-контейнеров, работающих на 127.0.0.1.

    Для выполнения gRPC-тестов у вас должна быть работающая конечная точка, и нужно использовать опцию CLI --grpcPort <port>.

    ```sh
    docker run --rm --network="host" -it -v ${PWD}/reports:/app/reports \
        wallarm/gotestwaf --grpcPort 9000 --url=http://my.grpc.endpoint
    ```

3.  Проверьте свою электронную почту для получения отчёта.

Вы успешно оценили своё решение безопасности приложений, используя GoTestWAF с минимальной конфигурацией.
Чтобы узнать о расширенных параметрах конфигурации, воспользуйтесь этой [ссылкой](#configuration-options).

## Проверка результатов оценки
Скачать инструмент