Web Security Academy

SQL injection - Lab : SQL injection attack, querying the database type and version on Oracle

Objectif :

  • Faire apparaître le type et la version de la base de données ( de type ORACLE )

Solution :

On lance le lab et on se trouve dans un site de commerce avec des articles en vente.

On peut affiner l'affichage des produits selon leur catégorie :

Pour effectuer ce filtrage, une requête GET est envoyée au serveur avec comme paramètre la catégorie choisie :

Les produits vendus sont stockés dans une base de données. On va essayer de modifier la requête SQL ( liée à la selection des produits affichés ) traitée par le serveur en utilisant ce paramètre GET.

Dans un premier temps, on va utiliser l'opérateur UNION pour retrouver le nombre de colonnes retourné par le serveur. Il faut utiliser une syntaxe liée à une base de données de type Oracle. On trouve deux colonnes ( le payload Pets' UNION SELECT NULL,NULL FROM DUAL-- ne retourne pas d'erreurs).

Enfin, on extrait les informations liées au type et à la version de la base de données : Pets' UNION SELECT BANNER,NULL FROM v$version--

Ce qui donne sur la page :

Le lab est enfin validé !