Files
hacktricks-cloud/src/pentesting-ci-cd/cloudflare-security/README.md

6.4 KiB

Cloudflare Security

{{#include ../../banners/hacktricks-training.md}}

In a Cloudflare account there are some general settings and services that can be configured. In this page we are going to analyze the security related settings of each section:

Websites

Revisar cada uno con:

{{#ref}} cloudflare-domains.md {{#endref}}

Domain Registration

  • En Transfer Domains comprobar que no sea posible transferir ningún dominio.

Revisar cada uno con:

{{#ref}} cloudflare-domains.md {{#endref}}

Analytics

No pude encontrar nada que revisar para una auditoría de configuración de seguridad.

Pages

En cada Pages de Cloudflare:

  • Comprobar información sensible en el Build log.
  • Comprobar información sensible en el Github repository asignado a Pages.
  • Comprobar posible compromiso del repo de Github vía workflow command injection o compromiso pull_request_target. Más info en la Github Security page.
  • Buscar funciones vulnerables en el directorio /fuctions (si existe), revisar los redirects en el archivo _redirects (si existe) y los encabezados mal configurados en el archivo _headers (si existe).
  • Buscar vulnerabilidades en la web page mediante blackbox o whitebox si puedes acceder al código.
  • En los detalles de cada página /<page_id>/pages/view/blocklist/settings/functions. Comprobar información sensible en las Environment variables.
  • En la página de detalles revisar también el build command y el root directory buscando potenciales injections que puedan comprometer la página.

Workers

En cada Worker de Cloudflare comprobar:

  • Los triggers: ¿qué hace que el worker se ejecute? ¿Puede un usuario enviar datos que serán usados por el worker?
  • En Settings, revisar las Variables que contengan información sensible.
  • Revisar el código del worker y buscar vulnerabilidades (especialmente en puntos donde el usuario puede controlar el input).
  • Comprobar SSRFs que retornen la página indicada que puedas controlar.
  • Comprobar XSSs que ejecuten JS dentro de una imagen svg.
  • Es posible que el worker interactúe con otros servicios internos. Por ejemplo, un worker puede interactuar con un R2 bucket almacenando información en él obtenida del input. En ese caso, es necesario comprobar qué capacidades tiene el worker sobre el R2 bucket y cómo podría abusarse de ellas desde el input del usuario.

Warning

Note that by default a Worker is given a URL such as <worker-name>.<account>.workers.dev. The user can set it to a subdomain but you can always access it with that original URL if you know it.

For a practical abuse of Workers as pass-through proxies (IP rotation, FireProx-style), check:

{{#ref}} cloudflare-workers-pass-through-proxy-ip-rotation.md {{#endref}}

R2

On each R2 bucket check:

  • Configure CORS Policy.

Stream

TODO

Images

TODO

Security Center

  • Si es posible, ejecutar un Security Insights scan y un Infrastructure scan, ya que resaltarán información interesante desde el punto de vista de la seguridad.
  • Simplemente revisa esta información en busca de misconfiguraciones de seguridad e información interesante.

Turnstile

TODO

Zero Trust

{{#ref}} cloudflare-zero-trust-network.md {{#endref}}

Bulk Redirects

Note

Unlike Dynamic Redirects, Bulk Redirects are essentially static — they do not support any string replacement operations or regular expressions. However, you can configure URL redirect parameters that affect their URL matching behavior and their runtime behavior.

  • Comprobar que las expressions y requirements de los redirects tengan sentido.
  • Comprobar también endpoints ocultos sensitive que puedan contener información interesante.

Notifications

  • Revisar las notifications. Estas notificaciones se recomiendan para seguridad:
  • Usage Based Billing
  • HTTP DDoS Attack Alert
  • Layer 3/4 DDoS Attack Alert
  • Advanced HTTP DDoS Attack Alert
  • Advanced Layer 3/4 DDoS Attack Alert
  • Flow-based Monitoring: Volumetric Attack
  • Route Leak Detection Alert
  • Access mTLS Certificate Expiration Alert
  • SSL for SaaS Custom Hostnames Alert
  • Universal SSL Alert
  • Script Monitor New Code Change Detection Alert
  • Script Monitor New Domain Alert
  • Script Monitor New Malicious Domain Alert
  • Script Monitor New Malicious Script Alert
  • Script Monitor New Malicious URL Alert
  • Script Monitor New Scripts Alert
  • Script Monitor New Script Exceeds Max URL Length Alert
  • Advanced Security Events Alert
  • Security Events Alert
  • Comprobar todos los destinos, ya que podría haber información sensible (basic http auth) en las webhook urls. Asegúrate también de que las webhook urls usen HTTPS.
  • Como comprobación extra, podrías intentar suplantar una notificación de cloudflare a un tercero; quizá puedas inyectar algo peligroso.

Manage Account

  • Es posible ver los últimos 4 dígitos de la tarjeta, la fecha de expiración y la dirección de facturación en Billing -> Payment info.
  • Es posible ver el tipo de plan usado en la cuenta en Billing -> Subscriptions.
  • En Members es posible ver todos los miembros de la cuenta y su role. Ten en cuenta que si el plan no es Enterprise, solo existen 2 roles: Administrator y Super Administrator. Pero si el plan usado es Enterprise, más roles pueden utilizarse para aplicar el principio de menor privilegio.
  • Por lo tanto, siempre que sea posible se recomienda usar el Enterprise plan.
  • En Members se puede comprobar qué miembros tienen 2FA enabled. Todos los usuarios deberían tenerlo activado.

Note

Note that fortunately the role Administrator doesn't give permissions to manage memberships (cannot escalate privs or invite new members)

DDoS Investigation

Check this part.

{{#include ../../banners/hacktricks-training.md}}