Técnicas de inyección SQL para inyección sql
Generación forzada de errores
Identificar el tipo de base de datos, la versión y otra información es la motivación para este tipo de ataque. Su propósito es recopilar información sobre el tipo y estructura de la base de datos para prepararse para otros tipos de ataques, lo que se puede decir que es un paso preparatorio para el ataque. La información sobre la vulnerabilidad se obtiene explotando el mensaje de error predeterminado devuelto por el servidor de aplicaciones.
Utilice tecnología de canales no convencionales
Además de las respuestas HTTP, los datos también se pueden obtener a través de canales, pero los canales dependen principalmente de la existencia de funciones admitidas por la base de datos, por lo que esto La tecnología no está completa. Disponible en todas las plataformas de bases de datos. La idea básica es empaquetar primero la consulta SQL y luego enviar la información al atacante a través de canales no convencionales.
Uso de caracteres especiales
Las diferentes bases de datos SQL tienen muchos caracteres especiales y variables diferentes que se pueden utilizar para obtener información útil para futuras indicaciones de Attack.
Uso de declaraciones condicionales
Este método se puede dividir en tres formas: basado en contenido, basado en tiempo y basado en errores. Las declaraciones condicionales generalmente se agregan después de visitas periódicas para determinar los objetivos de los ataques en función de la retroalimentación de información.
Uso de procedimientos almacenados
A través de ciertos procedimientos almacenados estándar, los proveedores de bases de datos pueden ampliar la funcionalidad de la base de datos y el sistema puede interactuar con ella. Algunos de estos procedimientos almacenados pueden ser definidos por el usuario. A través de otros tipos de ataques que recopilan información de estructura y tipo de base de datos, se pueden construir comandos para ejecutar procedimientos almacenados. Este tipo de ataque a menudo permite la ejecución remota de comandos, la extensión de privilegios y la denegación de servicio.
Evitar técnicas de filtrado de entrada
Si bien se pueden usar ciertas técnicas de filtrado para evitar inyecciones de SQL codificadas comúnmente, hay muchas maneras de evitar el filtrado en esta situación, incluido el uso de comentarios SQL y consultas dinámicas. , usando truncamiento, usando codificación de URL y bytes nulos, usando variaciones de casos y anidando y eliminando expresiones. Con estas herramientas, las consultas construidas a partir de entradas pueden evitar el filtrado de entradas, lo que permite al atacante obtener los resultados de la consulta deseados.
Tecnología de inferencia
Borrar esquemas de bases de datos, extraer datos e identificar parámetros inyectables. Este método de ataque utiliza los comentarios del sitio web sobre las entradas del usuario para razonar sobre los parámetros inyectables y los patrones de la base de datos. Una vez ejecutada la consulta construida por este método de ataque, solo hay dos respuestas, verdadera y falsa. Los métodos de inyección basados en inferencia se dividen principalmente en dos tipos: inyección de prueba de tiempo e inyección ciega. El primero consiste en agregar declaraciones como "esperar 100" a la declaración de inyección y juzgar el éxito de la inyección y el rango de valores de datos derivados en función del tiempo del resultado de la consulta; el segundo incluye principalmente "y l = l"; " Y l=2 "Dos métodos de inyección clásicos. Estos métodos hacen preguntas que están indirectamente relacionadas y pueden obtener respuestas, y luego infieren la información requerida a través de la información de respuesta y luego llevan a cabo el ataque.