Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
waf-bypass — Strumento automatizzato per test di sicurezza WAF che rileva falsi positivi e falsi negativi utilizzando oltre 15 categorie di payload tra cui SQLi, XSS, RCE e GraphQL injection. Supporta Docker, output JSON e payload personalizzati. | Kitploit
Strumenti/GitHubGitHub/nemesida-waf/waf-bypass
Scanner di VulnerabilitàTest di Sicurezza delle APIBypass WAFSicurezza WebPenetration Testing
GitHubnemesida-waf/waf-bypass

waf-bypass

Strumento automatizzato per test di sicurezza WAF che rileva falsi positivi e falsi negativi utilizzando oltre 15 categorie di payload tra cui SQLi, XSS, RCE e GraphQL injection. Supporta Docker, output JSON e payload personalizzati.

Vedi Repository
1.5k185202 mesi faRevisionato da Kitploit
Sito web

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Strumento di Bypass WAF

WAF Bypass Tool è uno strumento open source per analizzare la sicurezza di qualsiasi WAF per falsi positivi e falsi negativi utilizzando payload predefiniti e personalizzabili. Controlla il tuo WAF prima che lo faccia un attaccante. WAF Bypass Tool è sviluppato dal team Nemesida WAF con la partecipazione della comunità.

WAF Bypass Tool

Non fare nulla di illegale

È vietato l'uso per scopi illegali e illeciti. Non infrangere la legge. Non siamo responsabili per eventuali rischi associati all'uso di questo software.

Come eseguire

Esecuzione tramite Docker

L'ultima versione di waf-bypass è sempre disponibile tramite Docker Hub. Può essere scaricata facilmente tramite il seguente comando:

# docker pull nemesida/waf-bypass
# docker run nemesida/waf-bypass --host='example.com'

Esecuzione tramite pipx

# pipx install git+https://github.com/nemesida-waf/waf-bypass.git
# <pipx bin dir>/waf-bypass

Esecuzione diretta dal codice sorgente tramite CLI

# git clone https://github.com/nemesida-waf/waf_bypass.git /opt/waf-bypass/
# python3 -m pip install -r /opt/waf-bypass/requirements.txt
# python3 /opt/waf-bypass/main.py --host='example.com'

Opzioni

  • '--proxy' (--proxy='http://proxy.example.com:3128') - opzione che permette di specificare a quale indirizzo connettersi invece dell'host.

  • '--header' (--header 'Authorization: Basic YWRtaW46YWRtaW4=' --header 'X-TOKEN: ABCDEF') - opzione che permette di specificare l'header HTTP da inviare con tutte le richieste (ad esempio per l'autenticazione). È consentito l'uso multiplo.

  • '--user-agent' (--user-agent 'MyUserAgent 1/1') - opzione che permette di specificare lo User-Agent HTTP da inviare con tutte le richieste, tranne quando lo User-Agent è impostato dal payload ("USER-AGENT").

  • '--block-code' (--block-code='403' --block-code='222') - opzione che permette di specificare il codice di stato HTTP da aspettarsi quando il WAF blocca. (il predefinito è 403). È consentito l'uso multiplo.

  • '--threads' (--threads=15) - opzione che permette di specificare il numero di thread di scansione paralleli (il predefinito è 10).

  • '--timeout' (--timeout=10) - opzione che permette di specificare un timeout di elaborazione della richiesta in secondi (il predefinito è 30).

  • '--exclude-dir' - esclude la directory del payload (--exclude-dir='SQLi,XSS').

  • '--json-format' - un'opzione che permette di visualizzare il risultato del lavoro in formato JSON (utile per integrare lo strumento con piattaforme di sicurezza). Se l'opzione non è specificata, l'output sarà in formato tabellare (il formato predefinito).

  • '--details' - mostra i payload di falsi positivi e falsi negativi. Non compatibile con l'opzione --json-format.

  • '--no-progress' - non mostrare la barra di avanzamento.

  • '--curl-replay' - mostra il comando cURL per riprodurre richieste di falsi positivi, falsi negativi o fallite. Non compatibile con l'opzione --json-format.

Formato JSON

Esempio di specifica dell'output JSON:

{
  "TARGET": "https://example.com", // defined by --host option
  "PROXY": {},                     // defined by --proxy option
  "HEADERS": {                     // defined by --header option
    "User-Agent": ""
  },
  "BLOCK-CODE": [                  // defined by --block-code option
    ...
  ],
  "THREADS": 50,                   // defined by --threads option
  "TIMEOUT": 30,                   // defined by --timeout option
  "EXCLUDE-DIR": [                 // defined by --exclude-dir option
    ...
  ],
  "FAILED": {                      // requests with failed processing status
    "MFD/7.json": {
      "BODY": "WBHTTPSConnectionPool(host='example.com', port=443): Read timed out. (read timeout=1)"
    },
    ...
  },
  "PASSED": {                      // passed requests
    "UWA/3.json": {
      "URL": "403 RESPONSE CODE"
    },
    ...
  },
  "FALSED": {                      // requests with false positive processing status
    ...
  },
  "BYPASSED": {                    // requests with false negative processing status
    "UWA/26.json": {
      "URL": "200 RESPONSE CODE"
    },
    ...
  },
  "TestRequest": {                // test requests with processing status, exclude passed
    "FAILED": {},
    "FALSED": {
        "UWA/3.json": {
        "URL": "403 RESPONSE CODE"
        },
        ...
    }
    
  },
  "CURL": {                       // cURL command to reproduce false positive and false negative requests
    "FALSED": {},
    "BYPASSED": {
      "UWA/26.json": {
        "URL": "curl -X GET -H 'Accept: */*' -H 'Accept-Encoding: gzip, deflate' -H 'Connection: keep-alive' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36' 'https://example.com/do.php#.png'"
      },
      ...
    }
  }
}

Payload

A seconda dello scopo, i payload si trovano nelle cartelle appropriate:

  • FP - payload di falsi positivi
  • API - payload di test API
  • CM - payload di metodi HTTP personalizzati
  • GraphQL - payload di test GraphQL
  • LDAP - payload di injection LDAP
  • LFI - payload di inclusione di file locali
  • MFD - payload multipart/form-data
  • NoSQLi - payload di injection NoSQL
  • OR - payload di reindirizzamento aperto
  • RCE - payload di esecuzione remota di codice
  • RFI - payload di inclusione remota di file
  • SQLi - payload di injection SQL
  • SSI - payload di inclusione lato server
  • SSRF - payload di falsificazione di richieste lato server
  • SSTI - payload di injection di template lato server
  • UWA - payload di accesso indesiderato
  • XSS - payload di cross-site scripting

Scrivi i tuoi payload

Quando si compila un payload, vengono utilizzate le seguenti zone, metodo e opzioni:

  • URL - percorso della richiesta
  • ARGS - query della richiesta
  • BODY - corpo della richiesta
  • COOKIE - cookie della richiesta
  • USER-AGENT - user-agent della richiesta
  • REFERER - referer della richiesta
  • HEADER - header della richiesta
  • METHOD - metodo della richiesta
  • BOUNDARY - specifica il contenuto del boundary della richiesta. Applicabile solo ai payload nella directory MFD.
  • ENCODE - specifica il tipo di codifica del payload (Base64, HTML-ENTITY, UTF-16) in aggiunta alla codifica per il payload. I valori multipli sono indicati con uno spazio (es. Base64 UTF-16). Applicabile solo alle zone ARGS, BODY, COOKIE e HEADER. Non applicabile ai payload nelle directory API e MFD. Non compatibile con l'opzione JSON.
  • JSON - specifica che il corpo della richiesta deve essere in formato JSON
  • BLOCKED - specifica che la richiesta deve essere bloccata (test FN) o meno (FP)

Tranne per alcuni casi descritti di seguito, le zone sono indipendenti tra loro e vengono testate separatamente (quindi se vengono specificate 2 zone, lo script invierà 2 richieste, controllando alternativamente una e la seconda zona).

Per le zone puoi usare il suffisso %RND%, che permette di generare una stringa arbitraria di 6 lettere e numeri. (es.: param%RND=my_payload o param=%RND% OPPURE A%RND%B)

Puoi creare i tuoi payload, per farlo crea la tua cartella nella directory '/payload/', o posiziona il payload in una già esistente (es.: '/payload/XSS'). Il formato dati consentito è JSON.

Scarica lo strumento