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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
goWAPT — Test di penetrazione di applicazioni web in Go | Kitploit
Strumenti/GitHubGitHub/dzonerzy/gowapt
Scanner di Vulnerabilità WebAnalisi delle VulnerabilitàScripting e AutomazioneSfruttamento di Applicazioni WebSicurezza WebFuzzingPenetration Testing
GitHubdzonerzy/gowapt

goWAPT

Test di penetrazione di applicazioni web in Go

Vedi Repository
34759122 anni 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

GOWAPT - Test di Penetrazione di Applicazioni Web in Go

GOWAPT è il fratello minore di wfuzz, un coltellino svizzero dei WAPT, permette ai penetration tester di svolgere attività massive senza alcuno stress, basta configurarlo ed è questione di click.

Come installare

Per installare gowapt basta digitare:

make
sudo make install

Utilizzo

Dal menu -h

Usage of gowapt:
  -H value
    	A list of additional headers
  -a string
    	Basic authentication (user:password)
  -c string
    	A list of cookies
  -d string
    	POST data for request
  -e string
    	A list of comma separated encoders (default "plain")
  -f string
    	Filter the results
  -from-proxy
    	Get the request via a proxy server
  -fuzz
    	Use the built-in fuzzer
  -p string
    	Use upstream proxy
  -plugin-dir string
    	Directory containing all scanning module
  -scanner
    	Run in scanning mode
  -ssl
    	Use SSL
  -t string
    	Template for request
  -threads int
    	Number of threads (default 10)
  -u string
    	URL to fuzz
  -w string
    	Wordlist file
  -x string
    	Extension file example.js

Esempi

Scansiona http://www.example.com e filtra tutte le richieste 200 OK

gowapt -u "http://www.example.com/FUZZ" -w wordlist/general/common.txt -f "code == 200"

Scansiona http://www.example.com fuzzando il parametro GET vuln cercando XSS (presuppone 200 tag con una richiesta legittima)

gowapt -u "http://www.example.com/?vuln=FUZZ" -w wordlist/Injections/XSS.txt -f "tags > 200"

Scansiona http://www.example.com fuzzando il parametro POST vuln cercando XSS (presuppone 200 tag con una richiesta legittima)

gowapt -u "http://www.example.com/" -d "vuln=FUZZ" -w wordlist/Injections/XSS.txt -f "tags > 200"

Scansiona http://www.example.com protetta da autenticazione e filtra tutte le richieste 200 OK

gowapt -u "http://www.example.com/FUZZ" -w wordlist/general/common.txt -f "code == 200" -a "user:password"

Scansiona http://www.example.com aggiungendo l'header Hello: world e filtra tutte le richieste 200 OK

gowapt -u "http://www.example.com/FUZZ" -w wordlist/general/common.txt -f "code == 200" -H "Hello: world"

Scansiona http://www.example.com usando l'autenticazione base con utente/password guest:guest

gowapt -u "http://www.example.com/FUZZ" -w wordlist/general/common.txt -a "guest:guest"

Scansiona http://www.example.com aggiungendo un'estensione

gowapt -u "http://www.example.com/FUZZ" -w wordlist/general/common.txt -x myextension.js

Scansiona http://www.example.com attraverso un proxy (come Burp):

gowapt -p "http://localhost:8080" -u "http://www.example.com/FUZZ" -w wordlist/general/common.txt

Scansiona http://www.example.com (ricevuta dal proxy) e filtra tutte le richieste 200 OK

gowapt --from-proxy -w wordlist/general/common.txt

Esegui la modalità scanner su http://www.example.com (ricevuta dal proxy) con i plugin predefiniti

gowapt --from-proxy --scanner --plugin-dir plugin/

Poi apri BurpSuite, invia la richiesta che vuoi fuzzare al repeater e imposta un proxy upstream verso 127.0.0.1:31337 quando sei pronto clicca su invia, se tutto è corretto dovresti vedere come risposta Request received by GOWAPT

Estensione

Le estensioni sono un modo semplice per estendere le funzionalità di gowapt, una macchina virtuale JavaScript è responsabile del caricamento e dell'esecuzione dei file di estensione.

API JS

Di seguito l'elenco delle API attualmente implementate

MetodoNumero di parametriDescrizioneParametri
addCustomEncoder2Crea un encoder personalizzato da usare con le wordlistParam1 -> EncoderName (string)
Param2 -> EncoderLogic (function)
panic1Per scopi di debugging, crasha l'applicazioneParam1 -> PanicText (string)
dumpResponse2Scarica una richiesta/risposta completa su disco, utile per salvare casi di testParam1 -> ResponseObject (http.Response)
Param2 -> Path (string)
setHTTPInterceptor1Crea un interceptor per richieste HTTP in uscita e risposte in entrataParam1 -> HTTPCallback (function) *
sendRequestSync *4Invia una richiesta HTTP in modo sincronoParam1 -> Method (string)
Param2 -> Url (string)
Param3 -> PostData (string)
Param4 -> Headers (Object{Name:Value})

* PS: Quando si utilizza setHTTPInterceptor, il metodo di callback riceve 3 parametri:

  • Un oggetto richiesta/risposta
  • Un oggetto risultato
  • Un oggetto flag che indica se il primo oggetto è una richiesta o una risposta

A causa della natura di sendRequestSync, rallenterà il motore a causa della richiesta sincrona, quindi usalo con moderazione

Maggiori informazioni nell'esempio di estensione qui sotto:

example.js

/*
* Create a custom encoder called helloworld
*
* This encore just add the string "_helloworld" to every payload
* coming from the wordlist
*/
addCustomEncoder("helloworld", myenc);
/*
* Define the callback method for the helloworld encoder
*/
function myenc(data) {
	return data + "_helloword";
}
/*
* Create an HTTP interceptor
*
* The interceptor will hook every request / response
* is possible to modify request before send it, anyway the respose item
* it's just shadow copy of the one received from the server so no modification
* are possible
*
*
* request_response is an object which may contains both http.Request
* or http.Response , to know which on is contained check is_request flag
*
* REMEMBER! request_response is an http.* object so you must interact with
* this one just like you would do in golang!
*
* dumpResponse is a built-in function which dump full request-response to
* disk.
* result is an object filled with stats about the response it contains some fields
*
* result.tags => Number of tags in the response
* result.code => HTTP Response status
* result.words => Number of words in the response
* result.lines => Number of lines in the response
* result.chars => Number of chars in the response
* result.request => Full dump of the request
* result.response => Full dump of the response
* result.response => The injected payload
*
*/
setHTTPInterceptor(function(request_response, result, is_request){
	if(is_request){
		request_response.Header.Set("Hello", "world")
	}else{
		dumpResponse(request_response, "/tmp/dump.txt")
		/*
		* Send an HTTP request in a synchronous way
		*
		* This API accept 4 parameters:
		* method => GET | POST | HEAD | PUT | PATCH | UPDATE
		* url => The url of the HTTP service
		* post_data => The content of request bodyBytes
		* headers => A javascript dictionary {headerName => headerValue}
		*
		* The response object may be null or undefined or an http.Response from golang
		*/
		var response = sendRequestSync("GET", "http://example.com/", null, {"Fake": "Header"})
	}
})

Scanner

Una nuova modalità chiamata Scanner è stata introdotta con l'ultimo commit, permette all'utente di creare plugin completamente personalizzabili per eseguire scansioni web attive. Per maggiori informazioni leggi la Wiki!.

Wordlist

Scarica lo strumento