Comprenda la vida pasada y presente de la inyección SQL en un artículo

1. Introducción a la inyección SQL


El ataque de inyección SQL es un ataque que consiste en insertar una consulta SQL maliciosa o agregar una declaración en los parámetros de entrada de la aplicación y luego analizarla y ejecutarla en el servidor SQL en segundo plano. Actualmente es uno de los medios más comunes para que los piratas informáticos ataquen la base de datos.

2. Arquitectura de tres niveles del programa web.


La arquitectura de tres niveles (arquitectura de 3 niveles) generalmente divide toda la aplicación empresarial en:

  • Capa de interfaz de usuario
  • Capa de lógica empresarial
  • Capa de acceso a datos

El propósito de distinguir niveles es la idea de "alta cohesión y bajo acoplamiento". En el diseño de arquitectura de software, la estructura jerárquica es la estructura más común e importante y se utiliza en muchos tipos de desarrollo de software.


Las aplicaciones web impulsadas por bases de datos siguen la idea de una arquitectura de tres niveles y se dividen en tres capas:

  • Capa de presentación.
  • Capa de lógica empresarial (también llamada capa de dominio)
  • Capa de acceso a datos (también llamada capa de almacenamiento)

La topología se muestra en la siguiente figura.

 

En la imagen de arriba, el usuario accedió a la página de inicio del edificio del laboratorio y pasó por el siguiente proceso:

  • Ingrese www.shiyanlou.com en el navegador web para conectarse al servidor del edificio del laboratorio.
  • El servidor web de la capa de lógica empresarial carga el script index.php desde el almacenamiento local y lo analiza.
  • El script se conecta al DBMS (sistema de gestión de bases de datos) ubicado en la capa de acceso a datos y ejecuta declaraciones SQL.
  • El sistema de gestión de bases de datos de la capa de acceso a datos devuelve los resultados de la ejecución de la declaración Sql al servidor web.
  • El servidor web de la capa de lógica empresarial encapsula la página web en formato HTML y la envía al navegador web de la capa de presentación.
  • El navegador web en la capa de presentación analiza el archivo HTML y muestra el contenido al usuario.

En una arquitectura de tres niveles, todas las comunicaciones deben pasar por la capa intermedia. En pocas palabras, la arquitectura de tres niveles es una relación lineal.

3. Explicación detallada de la vulnerabilidad de inyección SQL


3.1 Causas y amenazas de la inyección Sql:


Como se mencionó hace un momento, cuando accedemos a una página web dinámica, el servidor web iniciará una solicitud de consulta SQL a la capa de acceso a datos. Si se pasa la verificación de permiso, se ejecutará la declaración SQL.
Las solicitudes SQL enviadas directamente dentro del sitio web generalmente no son peligrosas, pero la situación real es que muchas veces es necesario construir dinámicamente declaraciones SQL basadas en los datos de entrada del usuario. Si los datos ingresados ​​por el usuario se construyen en código SQL malicioso, el La aplicación web no ha procesado la dinámica. Revisar los parámetros utilizados en la declaración Sql construida traerá peligros inesperados.

Las amenazas que trae consigo la inyección Sql incluyen principalmente los siguientes puntos:

  • Adivinar la base de datos backend es el método más utilizado para robar información confidencial de sitios web.
  • Omitir la autenticación, como omitir la verificación para iniciar sesión en el backend del sitio web.
  • La inyección puede utilizar procedimientos almacenados en la base de datos para realizar escalada de privilegios y otras operaciones.


3.2 Ejemplo de inyección SQL 1. Adivina la base de datos


A continuación, usaremos un ejemplo para brindarle una comprensión más clara de cómo la inyección Sql adivina la base de datos.
Utilice la plataforma de pruebas de penetración DVWA como objetivo de las pruebas de ataque:

 

Primero ingrese 1 y vea el eco (ID = 1 en la URL, lo que indica que la página PHP pasa parámetros a través del método get):

Supongo que te gusta

Origin blog.csdn.net/weixin_70257503/article/details/125900230
Recomendado
Clasificación