Seguridad

Burlando AWS WAF y ModSecurity usando notación científica

El soporte de la notación científica por varias bases de datos como MySQL permite saltar las protecciones del firewall de Amazon y ModSecurity para la ejecución de vulnerabilidades SQL Injection

Investigadores de GoSecure han descubierto que varios motores de bases de datos, como es el caso de MySQL o MariaDB, ignoran el uso de la notación científica (como por ejemplo ‘1.e5’ como equivalente de ‘100.000’) en caso de utilizarse de forma incorrecta, lo cual podría aprovecharse para saltarse la protección de varios firewalls de aplicaciones web (WAF, del inglés ‘Web Application Firewall’), como han podido comprobar en Amazon AWS WAF o ModSecurity.

En las pruebas realizadas, el uso de la anotación de tipo ‘1.e’ puede acompañarse de diferentes operadores de los motores de base de datos, como son ‘( ) . , | & % * ^ /’, omitiéndose la anotación científica y ejecutándose sólo los operadores. Según el mismo ejemplo aportado por los investigadores, explotando esta característica estas dos representaciones tendrían el mismo resultado:

Al ejecutarse ambas sintaxis igual, puede aprovecharse el uso de la notación para omitir las medidas de seguridad de los firewalls web. Los investigadores notificaron del error en AWS WAF a Amazon el día 16 de agosto de este año, siendo solucionado el pasado 1 de octubre. A su vez, el mismo día comprobaron que ModSecurity/libinjection también se encontraban afectados, siendo solucionado 5 días después en el OWASP Core Rule Set project (CRS).

El uso de la notación científica no supone en sí un riesgo, siendo una característica presente en varios motores de bases de datos, además de otros lenguajes de programación. Es por ello que en un principio los investigadores no habían pensado en reportarlo a Mariadb y MySQL, aunque finalmente también aportaron parches para eliminar esta sintaxis indeseada.

Aunque el fallo se encuentra ya solucionado en ambos WAF, desde Hispasec recomendamos no confiar únicamente en los firewall para evitar ser víctimas de una vulnerabilidad SQL Injection, siendo estos sólo una medida de mitigación. En su lugar, recomendamos priorizar la auditoría del código para evitar estos fallos de seguridad, los cuales pueden explotarse para la ejecución de código SQL en la base de datos.

Más información:

Un fallo en la notación científica de MySQL deja vulnerables a los clientes de AWS WAF a la ejecución de código SQL:

https://www.gosecure.net/blog/2021/10/19/a-scientific-notation-bug-in-mysql-left-aws-waf-clients-vulnerable-to-sql-injection/

La entrada Burlando AWS WAF y ModSecurity usando notación científica se publicó primero en Una al Día.

Powered by WPeMatico

Gustavo Genez

Informático de corazón y apasionado por la tecnología. La misión de este blog es llegar a los usuarios y profesionales con información y trucos acerca de la Seguridad Informática.