Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
waf-tester — Un programma per testare la funzionalità del WAF | Kitploit
Strumenti/GitHubGitHub/kpomin57/waf-tester
Scanner di VulnerabilitàEvasione IDS/IPSTest di Sicurezza delle APIBypass WAFSicurezza WebPenetration TestingConfigurazione ErrataApprendimento e Formazione
GitHubkpomin57/waf-tester

waf-tester

Un programma per testare la funzionalità del WAF

Vedi Repository
26103 mesi faRevisionato da Kitploit

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

🛡️ WAF Tester

Strumento enterprise per la valutazione dei WAF — Payload reali. Risultati reali. Report pronti per la conformità.

WAF Tester valuta i Web Application Firewall inviando payload di attacco reali a un URL fornito dall'utente e segnalando se vengono bloccati. Disponibile come applicazione desktop Windows (Electron) e come CLI Python eseguibile ovunque.

WAF Tester Screenshot


⚠️ Disclaimer legale

Questo strumento è destinato esclusivamente a test di sicurezza autorizzati. Usalo solo contro sistemi di tua proprietà o per i quali hai esplicita autorizzazione scritta. Test non autorizzati di sistemi di terze parti potrebbero violare il Computer Fraud and Abuse Act (CFAA) e leggi equivalenti nella tua giurisdizione. Gli autori non si assumono alcuna responsabilità per un uso improprio.


Funzionalità

Copertura dei test — 90 test suddivisi in 6 suite

SuiteTestCosa copre
OWASP / CWE Core44SQL injection (12 varianti), XSS (10 varianti), path traversal, command injection, XXE, SSRF, Log4Shell, SSTI, open redirect
Rate Limiting3Burst flood (30 concorrenti), sequential flood, bypass tramite rotazione IP X-Forwarded-For
Bot Detection10sqlmap, Nikto, Nmap, Scrapy, Masscan, HeadlessChrome, python-requests, curl, User-Agent vuoto, header Accept mancanti
Bypass Attempts15Doppia codifica URL, unicode fullwidth, byte nulli, variazione maiuscole/minuscole, offuscamento con commenti, CRLF injection, injection header host, method override, trucchi sui path
API Security10GraphQL introspection/batch/enumeration, JWT algoritmo none & confusione algoritmo, mass assignment, HTTP verb tampering, BOLA, confusione content-type
Business Logic8Quantità negativa, invio prezzo zero, accesso a endpoint admin, HTTP parameter pollution, enumerazione account, esposizione eccessiva di dati, forced browsing, escalation privilegi

Mappatura conformità

Ogni test è associato a uno o più framework di conformità:

  • OWASP Top 10 2021 (A01–A10)
  • CWE (Common Weakness Enumeration)
  • NIST 800-53 (SI-10, AC-3, SC-5, IA-5, ecc.)
  • PCI-DSS 4.0 (Requisito 6.4)

Intelligenza di rilevamento

  • Confronto baseline — recupera una GET pulita prima dell'esecuzione dei test, poi confronta ogni risposta per ridurre i falsi positivi
  • Punteggio di confidenza — i risultati sono valutati ALTO, PROBABILE o INCERTO invece di un semplice pass/fail binario
  • Valutazione multi-rilevatore — codici di stato, rilevamento di keyword WAF e divergenza nella lunghezza della risposta contribuiscono tutte al verdetto

Supporto autenticazione

  • Bearer token
  • Chiave API (nome header personalizzato)
  • Cookie / token di sessione
  • Autenticazione Basic (username + password)

Applicazione desktop Windows (Electron)

Prerequisiti

  • Node.js 18 o successivo

Esecuzione dal sorgente

root@kitploit:~
git clone https://github.com/kpomin57/waf-tester.git
cd waf-tester
npm install
npm start

Crea installer Windows

root@kitploit:~
npm run build

L'output appare in dist/ sia come installer NSIS che come .exe portatile. Non sono necessari prerequisiti sulla macchina di destinazione — Electron include il proprio runtime.


Versione CLI Python

Una versione Python a file singolo che funziona ovunque Python sia disponibile — server Linux, pipeline CI/CD, container Docker, WSL o qualsiasi ambiente in cui l'eseguibile Windows non è un'opzione.

Prerequisiti

root@kitploit:~
pip install rich requests

Utilizzo base

root@kitploit:~
python waf_tester.py --url https://target.example.com

Esegue tutti i 90 test, richiede la conferma di autorizzazione, stampa risultati colorati nel terminale e salva un report sia in JSON che in HTML nella directory corrente.

Opzioni

Esempi

root@kitploit:~
# Esegui tutte le suite
python waf_tester.py --url https://app.example.com

# Esegui solo le suite OWASP e API
python waf_tester.py --url https://app.example.com --suites owasp,api

# Autenticazione con bearer token
python waf_tester.py --url https://app.example.com/api \
  --auth-type bearer --auth-value eyJhbGciOiJIUzI1NiJ9...

# Autenticazione con chiave API
python waf_tester.py --url https://app.example.com/api \
  --auth-type apikey --auth-header X-API-Key --auth-value mykey123

# Salva report in una cartella, salta conferma (CI/CD)
python waf_tester.py --url https://app.example.com \
  --output-dir ./reports --confirm

# Solo output nel terminale — nessun file salvato
python waf_tester.py --url https://app.example.com --output terminal

# Instrada il traffico attraverso Burp Suite
python waf_tester.py --url https://app.example.com --proxy http://127.0.0.1:8080

Esecuzione in Docker

root@kitploit:~
docker run --rm -v $(pwd)/reports:/reports \
  python:3.12-slim sh -c \
  "pip install rich requests -q && python waf_tester.py \
   --url https://target.example.com \
   --output-dir /reports --confirm"

Esecuzione in CI/CD (GitHub Actions)

root@kitploit:~
- name: WAF Evaluation
  run: |
    pip install rich requests
    python waf_tester.py \
      --url ${{ secrets.WAF_TARGET_URL }} \
      --suites owasp,api,bypass \
      --output json \
      --output-dir ./reports \
      --confirm

- name: Upload report
  uses: actions/upload-artifact@v3
  with:
    name: waf-report
    path: reports/

Integrazione con Burp Suite

La CLI Python può instradare tutto il traffico dei test attraverso Burp Suite, fornendo una cronologia HTTP completa di ogni payload inviato da WAF Tester. Utile per l'ispezione manuale di richieste e risposte, la messa a punto dei payload, la risoluzione di comportamenti imprevisti del WAF e l'uso dello scanner o repeater di Burp su risultati interessanti.

Come funziona

Burp Suite esegue un listener proxy locale (default 127.0.0.1:8080). Quando punti le variabili d'ambiente proxy di WAF Tester verso quell'indirizzo, ogni richiesta effettuata dallo strumento passa attraverso Burp prima di raggiungere la destinazione. Vedi ogni payload nella cronologia HTTP di Burp con richiesta e risposta complete — codice di stato, header, corpo — esattamente come li ha visti il WAF.

Configurazione

1. Avvia Burp Suite e verifica che il listener proxy sia attivo:

Apri Burp → Proxy → Proxy Settings → verifica che il listener sia su 127.0.0.1:8080 (o annota la porta se diversa).

2. Esporta il certificato CA di Burp e consideralo attendibile (configurazione una tantum):

WAF Tester si connette a destinazioni HTTPS, quindi Burp deve intercettare TLS. Vai su Burp → Proxy → Proxy Settings → Import/Export CA Certificate → Esporta come DER. Installalo come CA radice attendibile sul tuo sistema, oppure imposta la variabile d'ambiente sottostante per saltare la verifica (accettabile per uso lab, non in produzione).

3. Esegui WAF Tester con --proxy:

root@kitploit:~
python waf_tester.py --url https://target.example.com --proxy http://127.0.0.1:8080

Su Windows:

root@kitploit:~
python waf_tester.py --url https://target.example.com --proxy http://127.0.0.1:8080

Puoi anche continuare a usare le variabili d'ambiente se preferisci:

root@kitploit:~
HTTPS_PROXY=http://127.0.0.1:8080 HTTP_PROXY=http://127.0.0.1:8080 \
python waf_tester.py --url https://target.example.com

4. Disattiva l'intercettazione di Burp:

In Burp → Proxy → Intercept, assicurati che l'intercettazione sia disattivata — altrimenti Burp si fermerà su ogni richiesta in attesa che tu la inoltri manualmente, e WAF Tester andrà in timeout. Vuoi che Burp registri passivamente il traffico, non lo intercetti.

5. Guarda le richieste arrivare nella cronologia HTTP di Burp:

Ogni payload di WAF Tester appare come una voce separata. Puoi fare clic con il destro su qualsiasi richiesta e inviarla a Repeater per modificarla e reinviarla manualmente, o a Intruder per ulteriori fuzzing.

Se ottieni errori TLS

Se il certificato CA di Burp non è considerato attendibile, aggiungi una soluzione --no-verify disabilitando temporaneamente la verifica SSL nello strumento. In alternativa, rendi attendibile il certificato CA di Burp a livello di sistema o utilizza una destinazione HTTP (non HTTPS) per i test iniziali.


Interpretazione dei risultati

Livelli di confidenza:

  • ALTO — blocco netto (403, 406, 429) senza ambiguità
  • PROBABILE — keyword WAF nel corpo della risposta, o stato diverso dalla baseline
  • INCERTO — blocco soft (400, 503) che potrebbe essere un errore legittimo dell'applicazione

Flusso di lavoro consigliato

  1. Esegui contro Juice Shop senza WAF → conferma che la maggior parte dei test viene bypassata (lo strumento funziona correttamente)
  2. Esegui contro ModSecurity/OWASP CRS → conferma che la maggior parte viene bloccata (la logica di punteggio funziona)
  3. Esegui contro il tuo WAF di destinazione → risultati di valutazione reali
root@kitploit:~
# Juice Shop (senza WAF — aspettati tutto bypassato)
docker run -d -p 3000:3000 bkimminich/juice-shop

# ModSecurity con OWASP CRS (aspettati la maggior parte bloccata)
docker run -d -p 80:80 owasp/modsecurity-crs:nginx

Struttura del progetto

root@kitploit:~
waf-tester/
├── src/
│   ├── main.js          # Processo principale Electron — logica dei test e IPC
│   ├── preload.js       # Ponte contestuale sicuro
│   └── renderer/
│       ├── index.html   # Shell dell'app
│       ├── styles.css   # Tema scuro militare/SOC
│       └── app.js       # Logica UI, filtri, feed live, export
├── waf_tester.py        # CLI Python — file singolo, nessuna configurazione
├── package.json
└── README.md

Changelog

v1.2.0

  • Espanso da 40 a 90 test suddivisi in 6 suite
  • Aggiunta suite API Security (GraphQL, JWT, mass assignment, BOLA, verb tampering)
  • Aggiunta suite Business Logic (manipolazione prezzi, escalation privilegi, forced browsing)
  • Aggiunti tag di conformità (OWASP, CWE, NIST, PCI-DSS) su ogni test
  • Aggiunto Filtro per framework nella vista Risultati
  • Aggiunta CLI Python (waf_tester.py) — file singolo, eseguibile ovunque
  • Revisione completa dell'interfaccia enterprise — anelli punteggio SVG, linea di scansione animata, sfondo a griglia esagonale

v1.1.0

  • Aggiunto supporto autenticazione (Bearer, chiave API, cookie, Basic Auth)
  • Aggiunti confronto baseline e punteggio di confidenza (ALTO / PROBABILE / INCERTO)
  • Aggiunta rotazione User-Agent su 6 User-Agent browser realistici
  • Aggiunto toggle header X-WAF-Tester (opt-in, disattivato per default)
  • Aggiunta casella di autorizzazione prima di ogni scansione
  • Risolta visibilità toast di esportazione e crash CRLF nei test di bypass

v1.0.0

  • Rilascio iniziale — 40 test, 4 suite, export JSON + HTML

Licenza

MIT — vedi LICENSE per i dettagli.


Realizzato per ingegneri della sicurezza che necessitano di una validazione WAF che vada oltre la semplice conformità.

Scarica lo strumento
FlagDescrizioneDefault
--urlURL di destinazione (obbligatorio)—
--suitesSuite da eseguire separate da virgolaall
--auth-typenone / bearer / apikey / cookie / basicnone
--auth-valueToken, stringa cookie o valore chiave API—
--auth-headerNome header per autenticazione API keyX-API-Key
--auth-userUsername per autenticazione Basic—
--auth-passPassword per autenticazione Basic—
--no-baselineDisabilita confronto baselineoff
--no-rotate-uaDisabilita rotazione User-Agentoff
--waf-headerInvia header identificativo X-WAF-Testeroff
--outputterminal, json, html (separati da virgola)all three
--output-dirDirectory per salvare i file di report.
--timeoutTimeout per richiesta in secondi10
--proxyURL proxy per tutte le richieste (es. http://127.0.0.1:8080)off
--confirmSalta la richiesta di conferma autorizzazioneoff
PunteggioVotoSignificato
90–100%AEccellente — Il WAF blocca quasi tutti i vettori di attacco
80–89%BBuono — Lacune minori da approfondire
65–79%CSufficiente — Notevoli vettori di bypass presenti
50–64%DScarso — Lacune significative nella protezione
< 50%FCritico — Il WAF è in gran parte inefficace