Métodos para bypassear un WAF en Inyección SQLi

Iniciado por M5f3r0, Julio 30, 2013, 02:02:46 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Julio 30, 2013, 02:02:46 PM Ultima modificación: Noviembre 23, 2014, 02:20:09 PM por Expermicid
Hola comunidad de underc0de, en está ocasión les vengo a enseñar algunas formas para bypassear un WAF (Web application firewall) en sus momentos de hacer una Inyección SQL.

Primero que nada, ¿Qué es un WAF?

Información sobre ello: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Bueno, supongamos que tenemos una página vulnerable a SQL Injection y nos toca búscar las columnas vulnerables usando UNION SELECT, y cuando ejecutamos la inyección en la página de repente nos dispara un WAF. Un ejemplo de como se vería ciertas veces un waf:



Usare esa página como ejemplo, No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Vale, entonces como lo bypassearia? usando ciertas formas de burlar al servidor, por ejemplo en el UNION SELECT le puedo cambiar el caso y colocarlo como uNiOn SeLeCt , quedando todo de la siguiente forma:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Vale, está un poco fuerte. No lo logro bypassear, entonces usamos otro tip. Como por ejemplo, los comentarios /*! */ . Ej:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Aún no lo logra bypassear, añado un 50000 a un costado del union haber que tal..

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Nos devuelve el siguiente resultado:




Excelente!! Nos ha logrado bypassear el Web Application Firewall :D. Ahora podemos seguir jugueteando con el servidor búscando sus registros, tablas, etc.. Eso ya es cosa de ustedes.

Otro tip que nos puede ser útil es:

UNIunionON SELselectECT

En esto, uso UNI porque ciertas veces el servidor elimina las palabras entonces lo uso de esa manera ;D.

Bueno eso ha sido todo :D.

Me despido, saludos.
A veces, observo mi pasado y me arrepiento en la actualidad de todo lo que llegue a perder y olvidar por como me veía la sociedad, nunca dejes que las opiniones de los demás te lleguen a afectar moralmente hasta el punto en que dejes de hacer lo que más te apasiona, saludos! (msj escrito en el 2016)

Muy bueno...solo queria aclarar que desp del /*! puede ser precedido cualquier numero de 5 cifras desde el 00000 al 49999 para evadir el waf.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta#
Web: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Twitter: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Julio 30, 2013, 04:19:39 PM #2 Ultima modificación: Julio 30, 2013, 04:21:16 PM por arthusu
Cita de: [Q3rV[0] link=topic=18589.msg62916#msg62916 date=1375207720]
Muy bueno...solo queria aclarar que desp del /*! puede ser precedido cualquier numero de 5 cifras desde el 00000 al 49999 para evadir el waf.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta#

Y que esas 5 cifras significan la version pero como en el caso de q3rv0 si pones 00000 signfica un 0 en si es decir que si pones 01234 02345 siempre seria 0 es decir la version seria tomada como 0 :P y si pones por ejemplo: 50000 seria tomada como version 5 :) salu2 ;) :D
Pentest - Hacking & Security Services

Contact me: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Tengo una consulta, y si despues de haber bypasseado para que me diera el numero de las tablas, como sigo si añadiendo el famoso "+from+information_schema.tables--" si me lo bloquea y me vuelve a tirar la pagina de error  :o

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Tengo una consulta, y si despues de haber bypasseado para que me diera el numero de las tablas, como sigo si añadiendo el famoso "+from+information_schema.tables--" si me lo bloquea y me vuelve a tirar la pagina de error  :o

La verdad es que me siento algo oxidado en el tema, pero testeando un poco (no tengo ningún WAF para probar realmente) creo que sería algo así:

Código: php
-1 '/*!00000union%20select*/1,table_name,3,4 /*!00000from*/%20information_schema.tables -- '


Zalu2
Sólo el conocimiento te hace libre.

Agosto 01, 2013, 12:17:51 AM #5 Ultima modificación: Agosto 01, 2013, 12:56:24 AM por M5f3r0
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Tengo una consulta, y si despues de haber bypasseado para que me diera el numero de las tablas, como sigo si añadiendo el famoso "+from+information_schema.tables--" si me lo bloquea y me vuelve a tirar la pagina de error  :o

También puedes usar los mismos tips que coloque en el tutorial, por ejemplo en tu caso si deseas búscar las tablas puedes usar la siguiente inyección (en este caso con la web que use en el tuto):

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

En ese caso use limit, pero si quieres extraer todas tablas de la currente base de datos, puedes usar la siguiente:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

salu2 bro!! ;).
A veces, observo mi pasado y me arrepiento en la actualidad de todo lo que llegue a perder y olvidar por como me veía la sociedad, nunca dejes que las opiniones de los demás te lleguen a afectar moralmente hasta el punto en que dejes de hacer lo que más te apasiona, saludos! (msj escrito en el 2016)

Muchas gracias a todos, intentare con lo que me han proporcionado, si no funciona sigo el hilo y les comento. Gracias a todos