Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
gotestwaf — Um projeto open-source em Golang para avaliar diferentes ferramentas de segurança de API e WAF quanto à lógica de detecção e bypasses | Kitploit
Ferramentas/GitHubGitHub/wallarm/gotestwaf
Scanners de VulnerabilidadesScanners de Vulnerabilidades WebTestes de Segurança de APIsBypass de WAFSegurança WebTestes de PenetraçãoSegurança de APITop em Segurança de API nº11Top em Testes de Segurança de APIs nº11Top em Bypass de WAF nº3
1.8k26035há 3 diasRevisado pelo Kitploit
GitHubwallarm/gotestwaf

gotestwaf

Um projeto open-source em Golang para avaliar diferentes ferramentas de segurança de API e WAF quanto à lógica de detecção e bypasses

Ver RepositórioSite

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

GoTestWAF Black Hat Arsenal USA 2022

GoTestWAF é uma ferramenta para simulação de ataques a APIs e OWASP que suporta uma ampla variedade de protocolos de API, incluindo REST, GraphQL, gRPC, SOAP, XMLRPC, entre outros.

Foi projetada para avaliar soluções de segurança de aplicações web, como proxies de segurança de API, Web Application Firewalls, IPS, gateways de API, entre outros.


  • Como funciona
  • Requisitos
  • Início rápido com Docker
  • Verificando os resultados da avaliação
  • Demos
  • Outras opções para executar o GoTestWAF
  • Opções de configuração
  • Executando com a suíte de testes de regressão do OWASP Core Rule Set

Como funciona

O GoTestWAF gera requisições maliciosas usando payloads codificados inseridos em diferentes partes das requisições HTTP: seu corpo, cabeçalhos, parâmetros de URL, etc. As requisições geradas são enviadas para a URL da solução de segurança de aplicações especificada durante a inicialização do GoTestWAF. Os resultados da avaliação da solução de segurança são registrados no arquivo de relatório criado na sua máquina.

As condições padrão para geração de requisições são definidas na pasta testcases nos arquivos YAML com o seguinte formato:```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` é uma amostra de ataque malicioso (por exemplo, payload XSS como ```<script>alert(111)</script>``` ou algo mais sofisticado).
Como o formato da string YAML é obrigatório para payloads, eles devem ser [codificados como dados binários](https://yaml.org/type/binary.html).

* `encoder` é um codificador a ser aplicado ao payload antes de colocá-lo na requisição HTTP. Os codificadores possíveis são:

    * Base64
    * Base64Flat
    * JSUnicode
    * URL
    * Plain (para manter a string do payload como está)
    * XML Entity

* `placeholder` é um local dentro da requisição HTTP onde o payload codificado deve estar. Os placeholders possíveis são:

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

    O placeholder `RawRequest` permitirá que você faça uma requisição HTTP arbitrária. O payload é substituído pela substituição da string `{{payload}}` no caminho da URL, nos Headers ou no corpo. Campos do placeholder `RawRequest`:

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

    Campos obrigatórios para o placeholder `RawRequest`:
    
    * campo `method`

    Exemplo:
    
    ```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` é um nome de todo o grupo de payloads no arquivo. Pode ser arbitrário, mas deve refletir o tipo de ataques no arquivo.

A geração de requisições é um processo de três etapas que envolve a multiplicação da quantidade de payloads pela quantidade de encoders e placeholders.
Digamos que você definiu 2 **payloads**, 3 **encoders** (Base64, JSUnicode e URL) e 1 **placeholder** (URLParameter - parâmetro HTTP GET).
Neste caso, o GoTestWAF enviará 2x3x1 = 6 requisições em um caso de teste.

Durante a execução do GoTestWAF, você também pode escolher casos de teste entre dois incorporados: OWASP Top-10, OWASP-API,
ou o seu próprio (usando a [opção de configuração](#configuration-options) `testCasePath`).

## Requisitos

* O GoTestwaf suporta todos os sistemas operacionais populares (Linux, Windows, macOS) e pode ser compilado nativamente
se o [Go](https://golang.org/doc/install) estiver instalado no sistema. Se você quiser executar o GoTestWaf nativamente,
certifique-se de ter o navegador Chrome para poder gerar relatórios em PDF. Caso você não tenha o Chrome,
você pode criar um relatório em formato HTML.
* Se estiver executando o GoTestWAF como contêiner Docker, certifique-se de ter [instalado e configurado o Docker](https://docs.docker.com/get-docker/),
e que o GoTestWAF e a solução de segurança de aplicação avaliada estejam conectados à mesma [rede Docker](https://docs.docker.com/network/).
* Para que o GoTestWAF seja iniciado com sucesso, certifique-se de que o endereço IP da máquina que executa o GoTestWAF esteja na lista de permissões
da máquina que executa a solução de segurança de aplicação.

## Início rápido com Docker

As etapas abaixo mostram como baixar e iniciar o GoTestWAF com configuração mínima no Docker.

1.  Baixe a [imagem do GoTestWAF](https://hub.docker.com/r/wallarm/gotestwaf) do Docker Hub:

    ```
    docker pull wallarm/gotestwaf
    ```

2.  Inicie a imagem do GoTestWAF:

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

    Se necessário, você pode substituir `${PWD}/reports` pelo caminho para outra pasta usada para colocar o relatório de avaliação.

    Se você não quiser enviar o relatório por e-mail opcionalmente, basta pressionar Enter após a mensagem de solicitação de e-mail aparecer, ou você pode usar --noEmailReport para pular a mensagem:

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

    Se a ferramenta de segurança avaliada estiver disponível externamente, você pode omitir a opção `--network="host"`. Esta opção permite a interação de contêineres Docker em execução em 127.0.0.1.

    Para realizar os testes gRPC você deve ter um endpoint funcional e usar a opção de 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.  Verifique seu e-mail para o relatório.

Você avaliou com sucesso sua solução de segurança de aplicação usando o GoTestWAF com configuração mínima.
Para aprender opções de configuração avançadas, use este [link](#configuration-options).

## Verificando os resultados da avaliação
Baixar ferramenta