L'injection aveugle basée sur le temps
8 min · Avancé · 7 août 2026
Quand même le vrai/faux devient invisible
L’injection aveugle booléenne du chapitre précédent suppose un dernier point d’appui : une différence de comportement observable, même minime, entre une condition vraie et une condition fausse. Certaines applications ne laissent même pas filtrer ça, par exemple une API qui renvoie systématiquement le même message générique, quel que soit le résultat de la requête sous-jacente.
Dans ce cas, il ne reste plus rien à observer dans le contenu de la réponse. Mais un signal indépendant du contenu reste disponible : le temps que met le serveur à répondre.
Faire attendre la base de données à dessein
L’idée consiste à injecter une condition qui, si elle est vraie, déclenche une pause artificielle avant que la base ne réponde. L’attaquant n’a alors qu’à mesurer le temps de réponse : une réponse lente confirme que la condition était vraie, une réponse rapide qu’elle était fausse.
La fonction de temporisation utilisée dépend du moteur de base de données visé :
-- MySQL / MariaDB
' AND IF(1=1, SLEEP(5), 0)--
-- PostgreSQL
' AND (SELECT CASE WHEN (1=1) THEN pg_sleep(5) ELSE pg_sleep(0) END)--
-- SQL Server
'; IF (1=1) WAITFOR DELAY '0:0:5'-- Dans chaque cas, 1=1 est un exemple : en pratique, cette condition est remplacée par le même type de test caractère par caractère vu au chapitre précédent (SUBSTR(...) = 's'), avec la temporisation comme unique signal de succès.
Attention
SQLite (le moteur utilisé par les bacs à sable de ce site) ne dispose d’aucune fonction de temporisation native comme SLEEP : ce chapitre reste donc volontairement théorique, sans bloc interactif. Le principe (mesurer un délai plutôt qu’un contenu) reste identique quel que soit le moteur réellement ciblé.
Une technique plus lente, mais plus discrète… et plus détectable
Cette méthode est nettement plus lente qu’une extraction booléenne classique : chaque caractère nécessite d’attendre le délai complet pour confirmer une hypothèse vraie. Elle reste néanmoins la seule option quand aucune différence de contenu n’est exploitable, et elle est largement automatisée par les mêmes outils que l’injection booléenne.
Du côté défensif, des délais de réponse anormalement longs et répétés sur une même requête paramétrée constituent justement un signal de détection : c’est un des indicateurs que surveillent les outils de protection applicative (WAF).