Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
POC-CVE-2023-32681 — POC para el CVE-2023-32681 | Kitploit
Herramientas/GitHubGitHub/hardikmodha/poc-cve-2023-32681
Análisis de VulnerabilidadesExplotaciónSeguridad WebAprendizaje y EducaciónLabs y PrácticaArchived
GitHubhardikmodha/poc-cve-2023-32681

POC-CVE-2023-32681

POC para el CVE-2023-32681

Ver Repositorio
412hace 3 añosAún no revisado

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

POC para CVE-2023-32681

Esta es una implementación en Python 3 de CVE-2023-32681, que afecta a clientes que usan requests versión <= 2.30.0.

Según https://www.rfc-editor.org/rfc/rfc9110.html#section-15.4, cuando el servidor emite una redirección 3xx, el agente de usuario debe modificar la solicitud para eliminar ciertos encabezados y campos de la misma.

Los detalles de esos campos se pueden encontrar en https://www.rfc-editor.org/rfc/rfc9110.html#section-15.4-5. Específico de este CVE, he resaltado la parte relevante aquí.

image

La versión requests <= 2.30.0 no eliminaba los encabezados "Proxy-Authorization" al manejar la redirección a "https", filtrando así las credenciales del proxy al servidor redirigido.

Se pueden encontrar más detalles al respecto en

  • https://www.cve.org/CVERecord?id=CVE-2023-32681
  • https://security.snyk.io/vuln/SNYK-PYTHON-REQUESTS-5595532

Requisitos previos

  • Un conjunto válido de certificados para el servidor HTTP(S). Puedes usar mkcert para generar los certificados localmente.
  • Go v1.19
  • Python 3.x
  • virtualenv (Opcional)

Descripción general

  1. Implementación del servidor proxy en Go. Inicia un servidor proxy en el puerto 8080 y requiere autenticación básica. Para fines del POC, tiene el nombre de usuario y contraseña hardcodeados definidos en el mismo archivo.
Descargar herramienta
  • Implementación del servidor HTTP(S) en Go. Inicia 2 servidores.
    • Un servidor de redirección escuchando en el puerto 443 y otro servidor echo escuchando en el puerto 4431.
    • El servidor de redirección define una ruta /redirect que redirige el tráfico al segundo servidor ejecutándose en 4431.
    • El servidor echo define una ruta /echoHeaders. Esta ruta devuelve al cliente los encabezados que recibió en la solicitud.
  • Script Python del POC. Envía una solicitud proxificada al servidor de redirección que se ejecuta en el puerto 443 e imprime la respuesta que devuelve el servidor.
  • Si la respuesta contiene los encabezados Proxy-Authorization, se dice que la versión de requests es vulnerable a "CVE-2023-32681".
  • Pasos

    1. Clona este repositorio.
    2. Actualiza las variables certFile y keyFile en server/main.go.
    3. Inicia los servidores HTTP(S) ejecutando el comando go run server/main.go. Esto iniciará dos servidores escuchando en los puertos 443 y 4431.
    4. Inicia el servidor proxy ejecutando el comando go run proxy/main.go. Esto iniciará el servidor proxy en el puerto 8080.
    5. Instala las dependencias para ejecutar el script Python: pip3 install -r script/requirements_request_2_30_0.txt
    6. Ejecuta el script POC con python3 script/poc.py y observa la salida. Puedes ver que el encabezado "Proxy-Authorization" es devuelto por el servidor en la respuesta. El servidor también imprime los encabezados recibidos en los registros.
    7. Ahora, actualiza la versión de requests a >= 2.31.0 o ejecuta pip3 install -r script/requirements_request_2_31_0.txt
    8. Vuelve a ejecutar el script POC con python3 script/poc.py y observa la salida. Puedes ver que el encabezado "Proxy-Authorization" ahora no está presente en la respuesta del servidor. Lo mismo se puede verificar en los registros del servidor.

    Capturas de pantalla

    Servidor proxy

    registros_del_servidor_proxy

    requests==2.30.0

    salida_script_requests_2_30_0
    salida_servidor_requests_2_30_0

    requests==2.31.0

    salida_script_requests_2_31_0
    salida_servidor_requests_2_31_0