Cómo engañar a las defensas para realizar un ataque SQL con JSON

(Para Alessandro Rugolo)
05/04/24

Como hemos visto anteriormente, los SQLi siguen siendo temibles a pesar de su antigüedad. Si alguien se ha perdido la información básica sobre SQLi recomiendo echar un vistazo al primer artículo: Ataque de inyección SQL: ¿qué es?

Naturalmente la industria de la seguridad ha desarrollado herramientas para combatir SQLi, se trata de aplicaciones capaces de filtrar solicitudes web y determinar con buena aproximación si son solicitudes legítimas o intentos de ataque.

Naturalmente, los hackers tampoco se dejaron desanimar y encontraron toda una serie de trucos para "eludir" las defensas, entre ellos el ataque llamado JSON: omisión de SQL.

Intentemos entender qué es, pero primero unas palabras sobre JSON.

JSON es un formato de intercambio de datos basado en un subconjunto del lenguaje de programación JavaScript; de hecho, significa notación de objetos JavaScript.

Con el tiempo JSON se ha convertido en el formato más utilizado en el intercambio de datos y las bases de datos han incluido soporte JSON en SQL. No les ha ocurrido lo mismo a muchas herramientas de seguridad que, en consecuencia, no son capaces de identificar los intentos de ataque SQLi realizados con esta técnica. 

Por ejemplo, si consideramos una aplicación web protegida por un WAF e intentamos realizar un ataque SQLi para intentar exfiltrar datos a los que no tenemos acceso, los controles WAF generalmente son capaces de identificar la solicitud inadecuada y bloquear el intento. .de ataque. Sin embargo, si se intenta un ataque utilizando una cadena en formato JSON, el WAF se engaña al no poder entender que la cadena contiene un comando SQL mientras que la base de datos es capaz de interpretar correctamente el comando ya que admite la sintaxis JSON.

El resultado es que los principales productores de WAF (Palo Alto Networks, Amazon Web Services, Cloudflare, F5 e Imperva) tuvieron que tomar medidas en 2022 insertando reglas para garantizar el control de la sintaxis JSON.

El equipo de investigación CLAROTY TEAM82 descubrió este nuevo tipo de ataque.

Ahora bien, dado que se trata de un ataque bastante reciente, sugiero que todos aquellos que utilicen un WAF para proteger sus servicios WEB se hagan pruebas específicas para comprobar si están protegidos por JSON SQL Bypass.

Habrá muchos que pensarán que no hay por qué alarmarse, ya que se trata de un ataque muy complejo de realizar: aconsejo a estos últimos que presten mucha atención, ya que SQLMap permite buscar automáticamente sitios vulnerables al ataque JSON SQL Bypass. 

SQLMap, herramienta de código abierto fácil de usar... ¡No, esa es otra historia!

Para saber más:

- https://www.picussecurity.com/resource/blog/waf-bypass-using-json-based-...

- https://www.json.org/json-it.html

- https://claroty.com/team82/research/js-on-security-off-abusing-json-base...