Omitir Cloudflare WAF con la dirección IP del servidor de origen
Last updated
Was this helpful?
Last updated
Was this helpful?
Esta es una publicación de blog invitada del hacker , Gwendal Le Coguic. Este es un tutorial sobre cómo omitir Cloudflare WAF con la dirección IP del servidor de origen.
colabora con piratas informáticos éticos confiables para realizar investigaciones de vulnerabilidades de colaboración colectiva que impulsan nuestro escáner de seguridad de aplicaciones web de vanguardia. La comunidad de piratas informáticos de Crowdsource nos ayuda a mantener nuestros oídos atentos a la comunidad de seguridad para brindarnos detalles sobre vulnerabilidades activas en la naturaleza.
Cloudflare es un proveedor de firewall de aplicaciones web (WAF) ampliamente utilizado. Pero, ¿y si pudieras eludir todas estas protecciones en un segundo haciendo que la defensa sea inútil? Este artículo es un tutorial sobre cómo omitir Cloudflare WAF con la dirección IP del servidor de origen.
Tenga en cuenta que lo que sigue probablemente sea relevante para cualquier tipo de firewall de aplicaciones web.
Con más de , Cloudflare es ahora uno de los firewalls de aplicaciones web (WAF) más populares. Hace un año, Cloudflare lanzó un solucionador de DNS rápido, que se convirtió en la guinda proverbial de su oferta de servicios. Al funcionar como un proxy inverso, el WAF no solo ofrece protección contra DDOS, sino que también puede activar una alerta cuando detecta un ataque. Para las suscripciones pagas, los usuarios tienen la opción de activar la protección contra vulnerabilidades comunes como SQLi, XSS y CSRF, pero esto debe habilitarse manualmente. Esta opción no está disponible para cuentas gratuitas.
Si bien el WAF es bastante bueno para bloquear las cargas útiles básicas, ya existen muchas omisiones alrededor del WAF de Cloudflare y aparecen nuevas todos los días, por lo que es importante seguir probando la seguridad de Cloudflare. En el momento exacto estoy escribiendo este artículo:
Como cazarrecompensas de errores de hackers , es obvio que podría ser muy interesante deshacerse del firewall. Para eso, básicamente tienes 3 opciones:
Personalice sus cargas útiles para eludir las reglas vigentes. Puede ser interesante mejorar sus habilidades sobre la omisión del firewall, pero puede ser una tarea tediosa y que requiere mucho tiempo, lo cual no es algo que pueda permitirse cuando es un cazador de errores: ¡el tiempo es primordial! Si está de acuerdo con esta opción, es mejor que pruebe las locas cargas útiles enumeradas en o busque en Twitter.
Modifique las solicitudes de manera adecuada para interrumpir el servidor. Y al igual que la primera opción, puede llevar mucho tiempo, requiere paciencia y buenas habilidades de fuzzing. escribió una buena presentación que podría ayudar a crear tales solicitudes mediante el .
Desplácese por Cloudflare encontrando la IP de origen del servidor web. Probablemente la opción más fácil, no se requieren habilidades técnicas, también es parte del proceso de reconocimiento, por lo que no se pierde tiempo. Tan pronto como lo obtenga, no tendrá que preocuparse más por el WAF o la protección DDOS (límite de velocidad).
En este artículo, me voy a centrar en la última opción y cómo lograrlo en base a los consejos tomados aquí y allá.
Recordatorio: Cloudflare es una herramienta que deben configurar humanos, generalmente desarrolladores o administradores de sistemas. Cloudflare no es responsable de la configuración incorrecta que podría conducir a ataques exitosos realizados con los métodos que se describen a continuación.
Pon a prueba la seguridad de tu sitio web con Detectify
Debería ver una lista de certificados que se ajustan a su objetivo:
Haga clic en cada resultado para mostrar los detalles y, en el menú "Explorar" a la derecha, elija "Hosts IPv4":
Desde aquí, tome todas las IP que pueda y, de vuelta al capítulo anterior, intente acceder a su objetivo a través de todas ellas.
El siguiente paso es recuperar los encabezados de los correos emitidos por su objetivo: suscríbase al boletín, cree una cuenta, use la función "contraseña olvidada", solicite algo ... en pocas palabras, haga lo que pueda para recibir un correo electrónico del sitio web que Estás probando (ten en cuenta que se puede usar Burp Collaborator).
Una vez que reciba un correo electrónico, verifique la fuente y, especialmente, los encabezados. Registra todas las IPs que encuentres allí, así como los subdominios, que posiblemente pertenezcan a un servicio de hosting. Y nuevamente, intente acceder a su objetivo a través de todos ellos.
El valor del encabezado Return-Path
funcionó bastante bien para mí:
Prueba usando Curl:
Esta conocida herramienta de WordPress, XML-RPC (Remote Procedure Call), permite a un administrador administrar su blog de forma remota mediante solicitudes XML. Un pingback es la respuesta de un ping. Se realiza un ping cuando un sitio A se vincula a un sitio B, luego el sitio B notifica al sitio A que está al tanto de la mención. Este es el ping-back.
Puede verificar fácilmente si está habilitado llamando al https://www.target.com/xmlrpc.php
. Deberías obtener lo siguiente:XML-RPC server accepts POST requests only.
Si no puede encontrar la IP de origen utilizando los métodos anteriores o si el sitio web no estaba protegido cuando comenzó su búsqueda pero finalmente se protegió, recuerde que a veces su mejor amigo es su objetivo y puede brindarle la información. Estás buscando.
Básicamente lo que necesitas es que el servidor web de tu objetivo realice una solicitud a tu servidor/colaborador. Usar otro tipo de problema también podría ser una buena idea: SSRF, XXE, XSS o lo que ya haya encontrado, para inyectar una carga útil que contenga la dirección de su servidor/colaborador y verificar los registros. Si obtuvo algún resultado, vuelva a verificar el host virtual.
Incluso las vulnerabilidades más simples, como Open Redirect o la inyección de HTML/CSS, pueden ser útiles si el servidor web de la aplicación las interpreta.
Por ahora hemos visto cómo encontrar y verificar direcciones IP manualmente, afortunadamente tenemos grandes desarrolladores en nuestra comunidad. A continuación se presentan algunas herramientas que se supone que deben hacer el trabajo por usted y que podrían ahorrarle su valioso tiempo. Puede incluirlos en su proceso de reconocimiento tan pronto como detecte una protección de Cloudflare.
Tenga en cuenta que ninguno de estos métodos es 100% confiable ya que todos los objetivos son diferentes y lo que funcionará para uno, puede no funcionar para otro. Mi consejo: pruébalos todos.
Como probablemente entendió, lo más importante es obtener tantas direcciones IP como pueda, sin importar cómo, sin importar dónde. Los servidores DNS son, por supuesto, el principal foco de atención, especialmente su historial, que estará disponible para siempre en la memoria de Internet. A continuación hay algunas fuentes excelentes que puede usar para encontrar su Grial.
Informes de casos anteriores sobre Hackerone:
Como solemos decir en la industria de la seguridad: una cadena es tan fuerte como su eslabón más débil. No importa cuánto tiempo haya dedicado a configurar Cloudflare, si se puede omitir y si se puede acceder directamente a su aplicación web a través de la IP del servidor, también se omitirán todas las protecciones que ofrece Cloudflare. Se vuelven totalmente inútiles ya que ya no estás protegido.
Probablemente hay muchas otras formas de realizar esta tarea de derivación, y ahora que entiendes la idea, no dudes en enviarme tus consejos en los comentarios o a través de Twitter. Estaré más que feliz de agregarlos a mi blog.
Otras lecturas:
La idea es comenzar su proceso de reconocimiento normal y obtener tantas direcciones IP como pueda (host, nslookup, whois, ...), luego verifique cuáles de esos servidores tienen un servidor web habilitado (netcat, nmap, masscan). Una vez que tenga una lista de IP del servidor web, el siguiente paso es verificar si el dominio protegido está configurado en uno de ellos como un . De lo contrario, obtendrá la página del servidor predeterminado o el sitio web predeterminado configurado. Si es así, ¡entonces encontraste el punto de entrada! Usando eructo:
Esto muestra el subdominio que estoy buscando pero con la dirección IP incorrecta:
Esto muestra el subdominio incorrecto, pero con una buena dirección IP:
Esto muestra el subdominio que estoy buscando, pero con una buena dirección IP, ¡perfecto!
Algunas herramientas disponibles para automatizar este proceso:
Si su objetivo tiene un certificado SSL (¡y debería tenerlo!), entonces está registrado en la base de datos (recomiendo encarecidamente suscribirse). Elija "Certificados" en la entrada de selección, proporcione el dominio de su objetivo, luego presione <enter>
.
Debería poder ver las direcciones IP de los servidores que usan el certificado:
Otro truco es enviar un correo desde su propio buzón a una dirección de correo electrónico inexistente @yourtarget.com. Si la entrega falla, debería recibir una notificación. Gracias a .
De acuerdo con , las funciones toman 2 parámetros sourceUri
y targetUri
. Así es como se ve en Burp Suite:
Crédito a .
: crimeflare, ipinfo.io : crimeflare, ipinfo.io : securitytrails, crimeflare
: dnsdumpster, crimeflare, fuerza bruta de subdominio : clave censys requerida : nslookup algunos subdominios ( ftp, cpanel, correo, directo, conexión directa, correo web, portal )
Netcraft: dns-trails: DNSQueries: DNSdumpster: Shodan:
Personalmente, nunca informé de tales cosas, pero según , poder sortear Cloudflare es algo que se considera una configuración incorrecta de la seguridad, por lo que merece una alerta. ¡Recompensa plzzzzzzzzzzzzzzzzzzzzzz!