Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/elazarl/goproxy
Utilidades de Propósito GeneralProxies Web e InterceptaciónSeguridad WebSeguridad de RedesTop en Proxies Web e Interceptación #5
GitHubelazarl/goproxy

goproxy

Una biblioteca de proxy HTTP/HTTPS personalizable para Go que admite reenvío regular, túneles CONNECT, intercepción TLS MITM y modificación programática de solicitudes/respuestas.

Ver Repositorio
6.8k1.2k93hace 5 díasRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

GoProxy

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

GoProxy es una librería para crear un servidor proxy HTTP/HTTPS personalizado usando Go (también conocido como Golang), con varios ajustes configurables disponibles. El objetivo de este proyecto es ofrecer un servidor proxy optimizado, utilizable con una cantidad razonable de tráfico, pero personalizable y programable.

El proxy en sí mismo es simplemente un handler de net/http, por lo que puedes añadir múltiples middlewares (recuperación de pánico, registro de logs, compresión, etc.) sobre él. Puede integrarse fácilmente con cualquier otra librería de red HTTP.

Para usar goproxy, se debe configurar el navegador (o cualquier otro cliente) para que use goproxy como proxy HTTP. Así es como se hace en Chrome y en Firefox. Si decides empezar con el ejemplo base, la URL que debes usar como proxy es localhost:8080, que es la predeterminada en nuestro ejemplo. También tienes que confiar en el certificado CA del proxy, para evitar cualquier problema de certificado en los clientes.

✈️ Grupo de Telegram

🎁 Conviértete en Patrocinador

Características

  • Realizar ciertas acciones solo en hosts específicos, con una única comparación de igualdad o con evaluación de expresiones regulares
  • Manipular peticiones y respuestas antes de enviarlas al navegador
  • Usar un http.Transport personalizado para realizar peticiones al servidor de destino
  • Puedes especificar una caché de certificados MITM, para reutilizarlos más tarde en otras peticiones al mismo host, ahorrando así CPU. No está habilitada por defecto, ¡pero deberías usarla en producción!
  • Redirigir el tráfico HTTP normal a un handler personalizado, cuando el destino es una ruta relativa (p. ej. /ping)
  • Puedes elegir el logger a usar implementando la interfaz Logger
  • Puedes deshabilitar la canonicalización de las cabeceras HTTP de las peticiones, estableciendo PreventCanonicalization en true

Modos de proxy

  1. Proxy HTTP regular
  2. HTTPS a través de CONNECT
  3. Servidor proxy HTTPS MITM ("Man in the Middle"), en el que el servidor genera certificados TLS para analizar los datos de peticiones/respuestas y realizar acciones sobre ellos
  4. Conexión proxy "secuestrada" (hijacked), donde el handler configurado puede acceder a los datos brutos de net.Conn

Patrocinadores

¿Tu empresa usa GoProxy? ¡Ayúdanos a mantener el proyecto activo y en buen estado! Apoyar a GoProxy nos permite dedicar más tiempo a corregir errores y añadir nuevas funciones. A cambio, si eliges un plan Gold Supporter o Enterprise, mostraremos con orgullo el logo de tu empresa aquí.

Conviértete en Patrocinador

Gold Supporters Enterprise Supporters

Mantenedores

  • Elazar Leibovich: Creador del proyecto, Ingeniero de Software
  • Erik Pellizzon: Mantenedor, Freelancer (¡abierto a colaboraciones!)

Si necesitas integrar GoProxy en tu proyecto, o necesitas algunas funciones personalizadas que mantener en tu fork, puedes contactar por correo electrónico con Erik (el mantenedor actual) y acordar con él cómo puede ayudarte como consultor independiente de pago.

Contribuciones

Si tienes algún problema, sugerencia o encuentras un error, no dudes en ponerte en contacto abriendo un issue de GitHub. Este es un proyecto open source gestionado por voluntarios, y estaremos encantados de discutir cualquier cosa que pueda mejorarlo.

Asegúrate de explicarlo todo, incluyendo el motivo del issue y lo que quieres cambiar, para que el problema sea más fácil de entender. También puedes abrir directamente un Pull Request, si es un cambio de código pequeño, pero debes explicar todo en la descripción. Si abres un pull request llamado refactoring con 5,000 líneas cambiadas, no lo fusionaremos... :D

El código de este proyecto se publica bajo la licencia BSD 3-Clause, lo que lo hace útil también para usos comerciales.

Envía tu caso de estudio

Así que has introducido e integrado GoProxy en uno de tus proyectos personales o en un proyecto de la empresa en la que trabajas.

Estaremos encantados de conocer nuevas soluciones creativas hechas con esta librería, así que no dudes en contactar por correo electrónico con el mantenedor indicado arriba para explicar por qué encontraste este proyecto útil para tus necesidades.

Si has firmado un Acuerdo de Confidencialidad (NDA) con la empresa, puedes proponerles que escriban un post en su sitio web oficial sobre este tema, de modo que esta información será pública por decisión suya, y podrás compartir el enlace del post con nosotros :)

El propósito de los casos de estudio es compartir con la comunidad por qué todos los contribuyentes de este proyecto están mejorando el mundo con su ayuda y qué está construyendo la gente con él.

Linter

El código base utiliza una comprobación automática de lint sobre el código de tu Pull Request. Antes de abrirlo, deberías comprobar si tus cambios lo respetan, ejecutando el linter en tu máquina local, para no llevarte ninguna sorpresa.

Para instalar el linter:

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

Esto creará un ejecutable en tu carpeta $GOPATH/bin ($GOPATH es una variable de entorno; normalmente su valor equivale a ~/go; comprueba su valor en tu máquina si no estás seguro de ello). Asegúrate de incluir la carpeta bin en el path de tu shell, para poder usar directamente el comando golangci-lint run.

Un vistazo a GoProxy

Para hacerte una idea de goproxy, aquí tienes un proxy HTTP/HTTPS básico que simplemente reenvía los datos al destino:

package main

import (
    "log"
    "net/http"

    "github.com/elazarl/goproxy"
)

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

Manejador de peticiones

Esta línea añadirá la cabecera X-GoProxy: yxorPoG-X a todas las peticiones enviadas a través del proxy, antes de enviarlas al destino:

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

Cuando la entrada de OnRequest() está vacía, la función especificada en DoFunc procesará todas las peticiones entrantes al proxy. En este caso, añadirá una cabecera a la petición y la devolverá al llamante. El proxy enviará la petición modificada al destino. También puedes usar Do en lugar de DoFunc, si implementas la interfaz especificada en tu tipo.

⚠️ Nota: devolvimos un valor nil como respuesta. Si la respuesta devuelta no es nil, goproxy descartará la petición y enviará la respuesta especificada al cliente.

Descargar herramienta