Seguridad del servidor de aplicaciones web (vulnerabilidad de carga de archivos, vulnerabilidad de inclusión de archivos)
Seguridad del cliente web (ataque XSS entre sitios)
2. inyección SQL
2.1 Introducción a la inyección SQL
La inyección SQL encabeza la lista de problemas de seguridad
El ataque de inyección SQL consiste en que los parámetros de entrada no se filtran y luego se unen directamente en la declaración SQL para su análisis.
La inyección SQL es una técnica de ataque que agrega código SQL a los parámetros de entrada y lo pasa al servidor para su análisis y ejecución.
2.2 Principio de inyección SQL
El atacante envía caracteres maliciosos en la página.
El servidor no filtra los parámetros enviados o el filtrado es insuficiente.
Los atacantes utilizan sentencias SQL de empalme para obtener información confidencial de la base de datos.
2.3 Peligros de la inyección SQL
Fuga de base de datos
Los datos del usuario fueron comprados y vendidos ilegalmente
Comprometer la seguridad de las aplicaciones web
2.4 Método de implementación de inyección SQL
Manual
Encontrar: punto de inyección
Entrada: sintaxis de combinación de inyección común de SQL para inyección
automático (herramienta)
Herramienta: Escanear en busca de puntos de inyección
Entrada: Pruebe automáticamente varias combinaciones de sintaxis
3.Configuración del entorno
3.1 máquina virtual vmware
3.1.1 Función
Software de máquina virtual, puede utilizar software para instalar múltiples sistemas operativos virtuales (Linux, Windows) en máquinas físicas
3.2 Target drone (aprender a utilizar el entorno del proyecto)
efecto
Un sistema de máquina virtual Linux. Algunas aplicaciones web con vulnerabilidades conocidas se instalan en esta máquina virtual para facilitar el aprendizaje.
3.3 Máquina de penetración (aprender a atacar el entorno de inyección SQL)
efecto:
Kali contiene cientos de herramientas que se pueden utilizar para diversas tareas de seguridad de la información, como pruebas de penetración e investigaciones de seguridad.
4. Inyección manual
4.1 Preparación del entorno
Descripción: Practica la inyección manual a través de la aplicación web del drone paso:
Iniciar objetivo drone OWASP
Accede al dron a través de un navegador
Visita el proyecto OWASP-dvwa
Acceso
Seleccione la aplicación de inyección SQL
4.2 Encuentra el punto de inyección
Nota: utilice principalmente comillas simples y caracteres de escape, principalmente comillas simples principio:
#后台程序sql语句select first_name,last_name from users where user_id ='$id';#输入单引号('),相当于将sql语句闭合,后面就可以使用附加其他逻辑条件了select first_name,last_name fro users where user_id =''';
1
2
3
4
4.3 O lógico
4.4 Adivina el número de columnas
por unión
' unionselect1,2#
1
2. Por O lógico
'or1=1#
1
4.5 Obtener bases de datos, tablas y columnas
Obtener el nombre de la base de datos
' unionselect1,database()#
1
obtener mesa
' union select table_name,1 from information_schema.tables where table_schema='dvwa' #
1
Obtener columnas
' union select column_name,1 from information_schema.columns where table_name='users' #
1
4.6 Obtener datos
//1. 获取单个字段数据' union select user,1 from users#
//2. 获取两个字段
'unionselectuser,password from users#
1
2
3
4
5
4.7 función concat
Función: empalmar varias cuerdas en una sola Sintaxis: concat(cadena1,cadena2,…) Ejemplo:
Obtenga user_id, usuario, contraseña de la tabla de usuarios y muéstrelos en dos columnas
' union select user,concat(first_name,'',last_name,' ',password)from users#
1
5. Inyección automática
5.1 Introducción a la inyección automática
Nota: La inyección automática se refiere al uso de herramientas en lugar del trabajo manual para completar las operaciones de inyección SQL. Herramienta: sqlmap
5.2 Inyectar automáticamente el entorno
Enciende el dron
Poner en marcha la máquina de penetración
5.3 Mapa SQL
Herramienta: sqlmap
Una herramienta de prueba de penetración de código abierto
Detectar y explotar automáticamente vulnerabilidades de inyección SQL y hacerse cargo de los servidores de bases de datos
5.3.1 Uso básico de sqlmap
parámetro
-u: escanear la URL de destino
–batch: procesa automáticamente la información solicitada
–cookie: parámetros de cookies adicionales
paso
Escanear punto de inyección
Obtener el nombre de la base de datos
Obtener el nombre de la tabla
Obtener nombre de campo
recuperar datos
Como necesitamos iniciar sesión, primero obtenemos la cookie de la página de inicio de sesión. Luego comience a escanear el punto de inyección. inyección exitosa
5.3.2 sqlmap obtiene el nombre de la biblioteca
– current-db: Consulta el nombre de la base de datos utilizada por la web actual -D: aplicar la base de datos especificada resultado de la operación:
5.3.3 sqlmap obtiene la tabla
– current-db: consulta todos los nombres de tablas en la biblioteca especificada (primero debe usar -D para especificar el nombre de la biblioteca) -T: especificar tabla
resultado de la operación:
5.3.4 sqlmap obtiene columnas
– columnas: consulta todos los campos de la tabla especificada (primero debe usar -T para especificar el nombre de la tabla) -C: especificar el nombre del campo