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
Strumenti/GitHubGitHub/elazarl/goproxy
Utilità GenericheProxy Web e IntercettazioneSicurezza WebSicurezza di ReteTop in Proxy Web e Intercettazione n.5
GitHubelazarl/goproxy

goproxy

Una libreria proxy HTTP/HTTPS personalizzabile per Go che supporta l'inoltro standard, il tunneling CONNECT, l'intercettazione TLS MITM e la modifica programmatica di richieste/risposte.

Vedi Repository
6.8k1.2k935 giorni 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

GoProxy

Status GoDoc Go Report BSD-3 License Pull Requests Awesome Go

GoProxy è una libreria per creare un proxy server HTTP/HTTPS personalizzato utilizzando Go (aka Golang), con diverse impostazioni configurabili. L'obiettivo di questo progetto è offrire un server proxy ottimizzato, utilizzabile con una quantità ragionevole di traffico, ma anche personalizzabile e programmabile.

Il proxy stesso è semplicemente un handler net/http, quindi puoi aggiungere più middleware (panic recover, logging, compressione, ecc.) sopra di esso. Può essere facilmente integrato con qualsiasi altra libreria di rete HTTP.

Per utilizzare goproxy, bisogna impostare il proprio browser (o qualsiasi altro client) per usare goproxy come proxy HTTP. Ecco come fare in Chrome e in Firefox. Se decidi di iniziare con l'esempio base, l'URL da usare come proxy è localhost:8080, che è quello predefinito nel nostro esempio. Devi anche fidarti del certificato CA del proxy, per evitare qualsiasi problema di certificato nei client.

✈️ Gruppo Telegram

🎁 Diventa uno Sponsor

Funzionalità

  • Esegui determinate azioni solo su host specifici, con un semplice confronto di uguaglianza o con la valutazione di espressioni regex
  • Manipola richieste e risposte prima di inviarle al browser
  • Utilizza un http.Transport personalizzato per effettuare richieste al server di destinazione
  • Puoi specificare una cache dei certificati MITM, per riutilizzarli successivamente per altre richieste allo stesso host, risparmiando così CPU. Non abilitata di default, ma dovresti usarla in produzione!
  • Reindirizza il normale traffico HTTP a un handler personalizzato, quando la destinazione è un percorso relativo (es. /ping)
  • Puoi scegliere il logger da utilizzare, implementando l'interfaccia Logger
  • Puoi disabilitare la canonicalizzazione degli header delle richieste HTTP, impostando PreventCanonicalization su true

Modalità del proxy

  1. Proxy HTTP regolare
  2. HTTPS tramite CONNECT
  3. Server proxy HTTPS MITM ("Man in the Middle"), in cui il server genera certificati TLS per analizzare i dati di richiesta/risposta ed eseguire azioni su di essi
  4. Connessione proxy "hijacked", in cui l'handler configurato può accedere ai dati grezzi di net.Conn

Sponsor

La tua azienda usa GoProxy? Aiutaci a mantenere il progetto attivo e in salute! Sostenere GoProxy ci permette di dedicare più tempo alla correzione di bug e a nuove funzionalità. In cambio, se scegli un piano Gold Supporter o Enterprise, mostreremo con orgoglio il logo della tua azienda qui.

Diventa uno Sponsor

Gold Supporters Enterprise Supporters

Maintainer

  • Elazar Leibovich: Creatore del progetto, Ingegnere del software
  • Erik Pellizzon: Maintainer, Freelancer (aperto a collaborazioni!)

Se hai bisogno di integrare GoProxy nel tuo progetto, o hai bisogno di alcune funzionalità personalizzate da mantenere nel tuo fork, puoi contattare Erik (l'attuale maintainer) via e-mail, e potete discutere insieme come può aiutarti come consulente indipendente a pagamento.

Contributi

Se hai problemi, suggerimenti, o se trovi un bug, sentiti libero di contattarci aprendo una issue su GitHub. Questo è un progetto open source gestito da volontari, e siamo felici di discutere qualsiasi cosa possa migliorarlo.

Assicurati di spiegare tutto, inclusa la ragione alla base della issue e cosa vuoi cambiare, per rendere il problema più facile da comprendere. Puoi anche aprire direttamente una Pull Request, se si tratta di una piccola modifica al codice, ma devi spiegare tutto nella descrizione. Se apri una pull request chiamata refactoring con 5.000 righe modificate, non la uniremo... :D

Il codice di questo progetto è rilasciato sotto la licenza BSD 3-Clause, rendendolo utile anche per usi commerciali.

Invia il tuo caso di studio

Quindi, hai introdotto e integrato GoProxy in uno dei tuoi progetti personali o in un progetto all'interno dell'azienda per cui lavori.

Siamo felici di conoscere nuove soluzioni creative realizzate con questa libreria, quindi sentiti libero di contattare il maintainer elencato sopra via e-mail, per spiegare perché hai trovato questo progetto utile per le tue esigenze.

Se hai firmato un accordo di non divulgazione con l'azienda, puoi proporre loro di scrivere un post sul blog sul loro sito web ufficiale su questo argomento, così queste informazioni saranno pubbliche per loro scelta, e puoi condividere il link del post del blog con noi :)

Lo scopo dei casi di studio è condividere con la comunità perché tutti i contributori di questo progetto stanno migliorando il mondo con il loro aiuto e cosa le persone stanno costruendo usandolo.

Linter

Il codebase utilizza un controllo lint automatico sul codice della tua Pull Request. Prima di aprirla, dovresti verificare che le tue modifiche lo rispettino, eseguendo il linter sulla tua macchina locale, così non avrai sorprese.

Per installare il linter:

go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest

Questo creerà un eseguibile nella tua cartella $GOPATH/bin ($GOPATH è una variabile d'ambiente, di solito il suo valore è equivalente a ~/go, controlla il suo valore sulla tua macchina se non ne sei sicuro). Assicurati di includere la cartella bin nel path della tua shell, per poter usare direttamente il comando golangci-lint run.

Un assaggio di GoProxy

Per avere un assaggio di goproxy, ecco un proxy HTTP/HTTPS di base che si limita a inoltrare i dati alla destinazione:

package main

import (
    "log"
    "net/http"

    "github.com/elazarl/goproxy"
)

func main() {
    proxy := goproxy.NewProxyHttpServer()
    proxy.Verbose = true
    log.Fatal(http.ListenAndServe(":8080", proxy))
}

Handler delle richieste

Questa riga aggiungerà l'header X-GoProxy: yxorPoG-X a tutte le richieste inviate attraverso il proxy, prima di inviarle alla destinazione:

proxy.OnRequest().DoFunc(
    func(r *http.Request,ctx *goproxy.ProxyCtx)(*http.Request,*http.Response) {
        r.Header.Set("X-GoProxy","yxorPoG-X")
        return r,nil
    })

Quando l'input di OnRequest() è vuoto, la funzione specificata in DoFunc elaborerà tutte le richieste in arrivo al proxy. In questo caso, aggiungerà un header alla richiesta e la restituirà al chiamante. Il proxy invierà la richiesta modificata alla destinazione. Puoi anche usare Do invece di DoFunc, se implementi l'interfaccia specificata nel tuo tipo.

⚠️ Nota che abbiamo restituito un valore nil come risposta. Se la risposta restituita non è nil, goproxy scarterà la richiesta e invierà la risposta specificata al client.

Scarica lo strumento