La Guía de pruebas OWASP (más precisamente: el Capítulo 4) proporciona una metodología para las aplicaciones web más pequeñas. Actualmente se está revisando, la versión 5 está programada para principios de 2018. Una de las secciones de la metodología es probar varias debilidades relacionadas con el manejo / validación de entrada (INPVAL). En particular, INPVAL-005 es pruebas de inyección SQL e INPVAL-007 es < a href="https://www.owasp.org/index.php/Testing_for_ORM_Injection_(OTG-INPVAL-007)"> pruebas de inyección de ORM . En el resumen de inyección de ORM dice
La inyección de ORM es un ataque que usa la inyección de SQL contra un ORM generado modelo de objeto de acceso a datos. Desde el punto de vista de un probador, este El ataque es virtualmente idéntico a un ataque de inyección de SQL. sin embargo, el Existe una vulnerabilidad de inyección en el código generado por la herramienta ORM.
Me pregunto, ¿es posible distinguir entre ellos, es decir, es posible que no haya un hallazgo para SQLi sino un hallazgo para ORMi? ¿Tiene sentido tener dos elementos de prueba distintos, o no deben combinarse en uno solo?
N.B. La inyección SQL también podría confundirse con una inyección XPath: en principio, xyz' OR 'x'='x
podría funcionar en ambos casos. Sin embargo, XPath no tiene comentarios (así que algo como xyz' or 1<2 --
no funciona para la inyección de XPath) y XPath no tiene la función sleep
(que tiene SQL). Así que aquí es posible distinguir con bastante claridad. ¿Existe una característica de distinción similar para que se pueda diferenciar la inyección de ORM y SQL?