FlareProx: proxy HTTP por Cloudflare para rotación de IPs

Imagina por un momento que necesitas que tus solicitudes HTTP salgan desde direcciones distintas sin depender de terceros proxies comerciales: quieres control, automatización y la latencia/geodistribución que da una CDN moderna. FlareProx nace de esa necesidad: automatiza el despliegue de Cloudflare Workers que actúan como pass-through proxies — reciben la petición, extraen el destino (por query param o cabecera), hacen un fetch() desde el edge de Cloudflare y reenvían la respuesta al cliente. Desde la perspectiva del servidor objetivo, la petición proviene del egress de Cloudflare, no de tu IP real.

Esta simplicidad funcional tiene dos efectos inmediatos:

  • Enmascaramiento de origen: la IP/ASN visible para el objetivo es de Cloudflare; no tu IP de casa/servidor.
  • Rotación a bajo coste: creando múltiples Workers (endpoints) puedes obtener salidas por pools distintos dentro de la red de Cloudflare y repartir carga o variar IPs a escala programada. El repo incluso ofrece utilidades para crear, listar, probar y limpiar endpoints desde la CLI/SDK.

FlareProx explota un vector simple y eficaz — usar el compute del CDN como relay — y lo envuelve con automatización para facilitar la rotación. Desde el punto de vista de diseño, su éxito no está en la magia técnica sino en minimizar fricción operativa para crear muchos endpoints confiables y reproducibles.

Instalación y configuración rápida

Ejecuta esto en tu entorno de pruebas:

git clone https://github.com/MrTurvey/flareprox.git
cd flareprox
pip install -r requirements.txt

Configura credenciales: o bien ejecuta el comando de configuración que trae el repo o edita directamente flareprox.json:

{
  "cloudflare": {
    "api_token": "TU_API_TOKEN",
    "account_id": "TU_ACCOUNT_ID"
  }
}

El README indica explícitamente este flujo y permisos requeridos.

Comandos esenciales (orquestación de endpoints)

  • Crear N endpoints:

python3 flareprox.py create --count 4

  • Listar endpoints desplegados:

python3 flareprox.py list
  • Probar todos los endpoints:

python3 flareprox.py test

  • Eliminar (cleanup):

python3 flareprox.py cleanup

Estos comandos automatizan la creación de Workers y devuelven las URLs públicas tipo https://<worker>.account.workers.dev que pasarás al objetivo.

Uso práctico: ejemplos curl

Cada endpoint acepta el URL destino en ?url= o en la cabecera X-Target-URL. Ejemplos:

# GET (usando query param) curl "https://your-worker.account.workers.dev?url=https://httpbin.org/get" # POST con body curl -X POST -d "username=admin" \ "https://your-worker.account.workers.dev?url=https://httpbin.org/post" # Usando cabecera X-Target-URL curl -H "X-Target-URL: https://httpbin.org/ip" \ https://your-worker.account.workers.dev

Usa httpbin.org o tu endpoint de testing para inspeccionar cabeceras, IP de origen y cuerpo de la petición (útil para fingerprinting y ver qué transforma la cadena de proxy).

Integración programática (Python): ejemplo directo

El repo incluye una clase FlareProx que puedes instanciar desde tu código. Ejemplo mínimo (adaptado del README):

#!/usr/bin/env python3
from flareprox import FlareProx, FlareProxError
import json

flareprox = FlareProx(config_file="flareprox.json")

if not flareprox.is_configured:
    raise SystemExit("Configura FlareProx: python3 flareprox.py config")

# Asegura que haya endpoints
endpoints = flareprox.sync_endpoints()
if not endpoints:
    flareprox.create_proxies(count=2)

# Hacer un POST via FlareProx
try:
    post_data = json.dumps({"msg": "hola desde FlareProx"})
    headers = {"Content-Type": "application/json", "User-Agent": "FlareProx-Client/1.0"}
    response = flareprox.redirect_request(
        target_url="https://httpbin.org/post",
        method="POST",
        headers=headers,
        data=post_data
    )
    print("Status:", response.status_code)
    print("Origen reportado:", response.json().get("origin"))
except FlareProxError as e:
    print("FlareProx error:", e)

Este patrón permite integrar FlareProx en scripts de scraping/testing y elegir internamente un endpoint para rotación

Usarlo con Burp (flujo práctico)

Si quieres inspeccionar peticiones mientras aprovechas FlareProx:

  1. Despliega uno o varios endpoints con flareprox.py create.

  2. En Burp -> Proxy -> Options -> Upstream Proxy Servers añade como upstream el endpoint de FlareProx (o configura un curl/script que apunte a la URL del Worker). Otra opción práctica: usar Burp → Project Options → Connections → Use a custom listener y redirigir tráfico HTTP a la URL del Worker con un pequeño helper que reescriba Host/X-Target-URL si es necesario.

  3. Observa en Burp cómo el request sale hacia el Worker y de ahí hacia el destino; inspecciona cabeceras añadidas por Cloudflare. (El README incluye captura demostrativa de uso con Burp). 

Nota práctica: algunos workflows funcionan mejor si manejas Burp + un script local que seleccione endpoints y reescriba X-Target-URL, porque Burp no conoce nativamente de la semántica ?url= del Worker.

Por último, comentar algunas notas de ingeniería reseñables:

  • El Worker implementa el proxy en el edge; no hay túnel persistente (p. ej. SOCKS) ni modificación profunda de la capa TCP/TLS original: el Worker hace un fetch HTTP(S) hacia el destino. Eso determina límites de comportamiento en streaming, websockets y TLS passthrough que deberás tener en cuenta si necesitas esos canales. 
  • El gateway de control (la utilidad flareprox.py y flareprox.json) gestiona credenciales Cloudflare (API token con permisos de Workers) y la orquestación de endpoints — la traza de auditoría está ligada a la cuenta que crea estos Workers, así que la aparente “anonimidad” es solo en el egress, no en los metadatos de gestión.
  • Las limitaciones prácticas — cuotas de Workers, límites de ejecución, y políticas de Cloudflare — son factores operativos: la herramienta menciona el incentivo del “free tier” y su número de peticiones, pero el operador debe confirmar límites reales en su cuenta y región.

En definitiva, FlareProx es una herramienta pragmática: no trae soluciones mágicas para anonimato, pero reduce significativamente la fricción operativa para crear endpoints HTTP en Cloudflare que actúan como proxies rotatorios. Para usos legítimos —testing, scraping autorizado o pruebas de resiliencia— ofrece una manera rápida de aprovechar la presencia global de Cloudflare. Sin embargo, exige validación cuidadosa (cabeceras, límites, latencia) y siempre operar dentro de marcos legales y de términos de servicio 

Proyectohttps://github.com/MrTurvey/flareprox

Comentarios