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
CVE-2026-2020-SSRF-via-URL-Parser-Differential — Demuestra la explotación de SSRF mediante diferencias en el análisis de URLs entre urllib.parse y requests, incluyendo un servicio vulnerable y un script de exploit PoC. | Kitploit
Herramientas/GitHubGitHub/george0papasotiriou/cve-2026-2020-ssrf-via-url-parser-differential
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de PenetraciónAprendizaje y Educación
GitHubgeorge0papasotiriou/cve-2026-2020-ssrf-via-url-parser-differential

CVE-2026-2020-SSRF-via-URL-Parser-Differential

Demuestra la explotación de SSRF mediante diferencias en el análisis de URLs entre urllib.parse y requests, incluyendo un servicio vulnerable y un script de exploit PoC.

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
Ver Repositorio
hace 18 díasAún no revisado

CVE-2026-2020 – SSRF mediante diferencia de analizadores de URL

Código del programa (Python)

root@kitploit:~
# vulnerable_service.py - Validates URL with urllib.parse, fetches with requests
from flask import Flask, request
import requests
import urllib.parse

app = Flask(__name__)

def is_allowed_url(url):
    parsed = urllib.parse.urlparse(url)
    # Only allow http://localhost and http://127.0.0.1
    return parsed.hostname in ('localhost', '127.0.0.1')

@app.route('/fetch')
def fetch():
    url = request.args.get('url')
    if not is_allowed_url(url):
        return "Blocked", 403
    # Fetch with requests (different parser)
    r = requests.get(url, timeout=5)
    return r.text

if __name__ == '__main__':
    app.run(port=5000)

CVE-2026-2020 – SSRF mediante diferencia de analizadores de URL

Severity: High

Resumen

Un servicio utiliza urllib.parse.urlparse de Python para validar URLs, pero luego las obtiene con la librería requests. Las discrepancias en cómo los dos analizadores manejan caracteres especiales (como @) permiten a un atacante omitir la lista blanca y acceder a recursos internos.

Detalles de la vulnerabilidad

  • Tipo: Server-Side Request Forgery (SSRF) – Diferencia de analizadores
  • Impacto: Acceso a servicios internos, exfiltración de metadatos de la nube.
  • Causa raíz: urlparse trata [email protected] como si el hostname fuera localhost (la parte antes de @ es el usuario), mientras que requests interpreta el host como evil.com.

Demostración del exploit

  1. Inicie el servicio vulnerable:
    root@kitploit:~
    pip install flask requests
    python vulnerable_service.py
    
  2. Ejecute el exploit:
    root@kitploit:~
    python exploit_ssrf_parser_diff.py
    
Descargar herramienta