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 Domainscomprobar 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 lasEnvironment 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 lasVariablesque 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 Insightsscan y unInfrastructurescan, 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 BillingHTTP DDoS Attack AlertLayer 3/4 DDoS Attack AlertAdvanced HTTP DDoS Attack AlertAdvanced Layer 3/4 DDoS Attack AlertFlow-based Monitoring: Volumetric AttackRoute Leak Detection AlertAccess mTLS Certificate Expiration AlertSSL for SaaS Custom Hostnames AlertUniversal SSL AlertScript Monitor New Code Change Detection AlertScript Monitor New Domain AlertScript Monitor New Malicious Domain AlertScript Monitor New Malicious Script AlertScript Monitor New Malicious URL AlertScript Monitor New Scripts AlertScript Monitor New Script Exceeds Max URL Length AlertAdvanced Security Events AlertSecurity 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
Memberses 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
Administratordoesn't give permissions to manage memberships (cannot escalate privs or invite new members)
DDoS Investigation
{{#include ../../banners/hacktricks-training.md}}