|
|
Publicado en 17/6/2023 11:10:55
|
|
|
|

Requisitos: Utiliza la herramienta de pruebas de penetración de código abierto sqlmap para probar los riesgos de inyección de interfaces web. La inyección SQL significa que la aplicación web no juzga la legitimidad de los datos de entrada del usuario o que el filtrado no es estricto, y el atacante puede añadir sentencias SQL adicionales al final de la instrucción de consulta definida previamente en la aplicación web, e implementar operaciones ilegales sin el conocimiento del administrador, para engañar al servidor de base de datos y que ejecute consultas arbitrarias no autorizadas, con el fin de obtener la información correspondiente de datos. En resumen, esLa interfaz de backend ejecuta sentencias SQL uniendo los parámetros solicitados。
Revisión:
SQLMAP es una herramienta de pruebas de penetración de código abierto que automatiza el proceso de detección y explotación de vulnerabilidades de inyección SQL y la toma de control de servidores de bases de datos. Cuenta con un potente motor de detección, muchas características específicas del probador de penetración definitivo y una amplia gama de interruptores, incluyendo huellas dactilares de bases de datos, obtención de datos de bases de datos, acceso al sistema de archivos subyacente y ejecución de comandos en el sistema operativo mediante conexiones fuera de banda.
SQL Map funciona directamente y funciona en cualquier plataformaVersiones 2.6, 2.7 y 3.x de Python。
Construcción del entorno SQL Map
Descarga en Python:El inicio de sesión del hipervínculo es visible.
Dirección de código abierto SQLMAP:El inicio de sesión del hipervínculo es visible. Documentación de comandos SQLMAP:El inicio de sesión del hipervínculo es visible.
Primero, el ordenador necesita instalar Python (omitido), y luego usar el comando git para descargar el código fuente, de la siguiente manera:
Opciones:
-h, --ayuda Mostrar mensaje básico de ayuda y salir -----Mostrar mensaje básico de ayuda y salir -hh Mostrar mensaje de ayuda avanzada y salir----- --versión para ver el número de versión----------- Mostrar el número de versión del programa y salir -v VERBOSO nivel de detalle (0-6, por defecto 1) --Nivel de verbosidad: 0-6 (por defecto 1)
Blanco:
Al menos una de las siguientes opciones debe configurarse para determinar la URL objetivo, a saber: Al menos una de las siguientes opciones debe estar incluida en el comando de operación SQLMap para usarla normalmente
-d cadena de conexión DIRECT para conexión directa a la base de datos------------------- -u URL, --url=URL URL destino --------------------- URL destino (por ejemplo, "http://www.site.com/vuln.php?id=1") -l LOGFILE Analiza objetivo(s) de Burp o proxy de WebScarab ---- el objetivo desde el archivo de log de un Burp u otro proxy -x SITEMAPURL analiza el objetivo desde el archivo remoto sitemap(.xml) --Analizar objetivo(s) desde el archivo remotemapmap(.xml) Escanear múltiples objetivos asignados en un archivo textual -------- BULKFILE -r REQUESTFILE Carga la solicitud HTTP desde un archivo ---------------Carga la solicitud HTTP desde un archivo -g GOOGLEDORK Procesar resultados de Google dork como URLs objetivo--- -c CONFIGFILE Cargar opciones desde un archivo INI de configuración -------------- Cargar opciones desde un archivo INI de configuración
Pedir:
Las siguientes opciones especifican cómo conectarse a la URL de destino
--método=MÉTODO: Fuerza el uso de un método HTTP dado (por ejemplo, PUT------------------ --data=DATA cadena de datos que se enviará a través de POST usando el método POST------------------ --param-del=PARA.. Establecer el símbolo para separar los valores de los parámetros-------------------- Carácter usado para dividir los valores de los parámetros --cookie=COOKIE especifica el valor de la cookie HTTP ---------------------- el valor de la cabecera de la cookie HTTP --cookie-del=COO.. Carácter usado para dividir los valores de las cookies------------------ Al probar un punto de inyección usando SQLMAP, puedes usar el parámetro -v x para especificar la complejidad de la información del eco, que va de [0~6] a 7 niveles, con un valor por defecto de 1.
0: Solo se muestran los errores de Python junto con la información crítica. 1: Mostrar tanto información básica como información de advertencia. (por defecto) 2: Mostrar la información de depuración al mismo tiempo. 3: La carga útil inyectada se muestra al mismo tiempo. 4: Mostrar las solicitudes HTTP al mismo tiempo. 5: Mostrar la cabecera de respuesta HTTP al mismo tiempo. 6: Mostrar la página de respuesta HTTP al mismo tiempo.
ASP.NET Configuración del entorno de inyección de núcleos
Crea un nuevo proyecto web usando ASP.NET Core, escribe una interfaz con inyección y el código fuente es el siguiente:
Interfaz de prueba:
Pruebas de penetración comúnmente utilizadas
Enumerar bases de datos de SGBD
Y usar SQL Server Profile para capturar la ejecución del SQL, como se muestra en la siguiente figura:
select * de [Usuarios] donde [Username] = 'itsvse' UNION ALL SELECT NULL,NULL,CHAR(113)+CHAR(98)+CHAR(122)+CHAR(118)+CHAR(113)+(SELECT name FROM master.. sysdatabases PARA JSON AUTO, INCLUDE_NULL_VALUES)+CHAR(113)+CHAR(113)+CHAR(118)+CHAR(120)+CHAR(113)-- yHIm'
Enumerar las tablas de la base de datos especificada
El comando es el siguiente:
Para peticiones HTTP complejas, puedesmediante el parámetro -r(Cargando solicitudes HTTP desde archivos,Utiliza la herramienta Burp Suite para capturar solicitudes HTTP de paquetes) para cargar la petición HTTP original desde un archivo de texto. Esto te permite saltarte el uso de muchas otras opciones (por ejemplo, configuración de cookies, datos publicados, etc.).
SQL Map es potente, consulta la documentación para funciones más avanzadas. (Fin)
|
Anterior:EF 6 ejecuta sentencias SQL nativas, problemas de inyección de parámetrosPróximo:[Transferir] a MySQL Advanced: comando optimizar tabla
|