Institut Supérieur d’Informatique

Slides:



Advertisements
Présentations similaires
Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.
Advertisements

Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 10 Patrick Reuter.
51 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Métier Janvier Version 1.0 -
Xavier Tannier Yann Jacob Sécurite Web.
MySQL et PHP.
PHP mySQL Extension php_mysql. Connexion à une base de données Établir une connexion mysql_connect(string server, string username, string password) –permet.
TP 3-4 BD21.
Un peu de sécurité Modal Web Modal Baptiste DESPREZ
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
LE LANGAGE SQL : LDD La création de tables L’ordre CREATE CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Failles de sécurité INJECTION
Développement d’applications web
MODEX WEB BAPTISTE DESPREZ Un peu de sécurité. Avant dentrer dans le vif du sujet JavaScript Langage de script (comme PHP) Exécuté par votre navigateur.
AYARI Mejdi Formation 2121 * ISD * 1 tructured uery Anguage 2006.
Contrôles d'accès aux données
Techniques Internet de Base Licence 2 (Info, Maths, PC/PA) Université Jean Monnet Ruggero G. PENSA
Développement dapplications web Initiation à la sécurité 1.
Le langage PHP 5.
Les instructions PHP pour l'accès à une base de données MySql
Xavier Tannier Sécurite Web.
Les requêtes Les requêtes permettent dinterroger une base de données suivant 3 opérateurs : La projection Affiche le contenu dun champ complet En langage.
L’utilisation des bases de données
A4.1.1 Proposition dune solution applicative A4.1.2 Conception ou adaptation de linterface utilisateur dune solution applicative A4.1.2 Conception ou.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Procédures stockées CPI-SQLServer.
SQL Injection Réalisée par: BEN NASR Houssem GMATI Idriss HADDAD Mohamed Aymen HAKIM Youssef.
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections 15.5.
1 PHP 1.Langage PHP 1.1. Types de base, variables et constantes 1.2. Opérateurs et expressions 1.3. Instructions 1.4. Fonctions 2.Accès aux bases de données:
Les concepts et les méthodes des bases de données
MODEX WEB BAPTISTE DESPREZ Un peu de sécurité. Avant dentrer dans le vif du sujet JavaScript Langage de script (comme PHP) Exécuté par votre navigateur.
Les transactions.
Cours n°4M2. ESCE (S. Sidhom) Séminaire ( 6-12 Février 2007 ) Promo. M2 ESCE-Tunis 2006/07 Conception d’un système d'information sur Internet Architecture.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Objectifs A la fin de ce chapitre, vous pourrez : présenter l'utilisation d'opérations de chargement de données par chemin direct décrire l'utilisation.
Créer des packages.
Lyda tourisme Process en PHP. Objectif Il s’agit de construire un segment de process dans un système d’information touristique.
Surveiller et résoudre le conflit de verrouillage
 Syntaxe du langage PHP
 Requêtes MySQL en PHP Introduction
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
Sélection de colonnes (la projection)
Page 1Dernière mise à jour: 17 avril 2015 Service de l'enseignement des technologies de l'information, © HEC Montréal, Tous droits réservés.
 Formulaires HTML : traiter les entrées utilisateur
21/04/2015© Robert Godin. Tous droits réservés.1 6Gestion des contraintes d’intégrité en SQL n Contrainte d'intégrité statique – respectée pour chacun.
Conception de Site Webs Interactifs Cours 7 Patrick Reuter
Initiation au web dynamique Licence Professionnelle.
 Le langage SQL Introduction SQL : Strutured Query Language, est un langage de requête, que l'on retrouve dans divers SGBDR (Access de Microsoft, MySQL,
 Les bases de données MySQL
Module 1 : Vue d'ensemble de Microsoft SQL Server
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
Cours n°4M1.ist-ie (S. Sidhom) UE 203 Promo. M1 IST-IE 2006/07 Conception d’un système d'information sur Internet Architecture trois-tiers : technologies.
Sécurité des systèmes d’information: Web Security & Honeypots
LES BASES DE DONNEES PRÉSENTÉ PAR CATHY ET THIBAULT.
Le langage SQL.
Séance /10/2004 SGBD - Approches & Principes.
Initiation aux bases de données et à la programmation événementielle
Cours n°2 Implémentation et exploitation
Principes et variables
Le Langage de Manipulation de Données LMD Module 6.
Modélisation et utilisation Aurélien Marion1 Aurélien Marion
De Arnault Chazareix :
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
Par Michael Tran Injection. Présentation du problème C’est faire en sorte que l’entrée utilisateur de l’attaquant est considérée de façon spéciale Permet.
Développement d’applications Web
Manipulation D’Une Base De Données
Transcription de la présentation:

Institut Supérieur d’Informatique SQL Injection réalisé par: AYARI Maher Chalwati haithem Hamdoun Emir HAFSI RAMZI HAMMAMI OMAR 2012/2013

SOMMAIRE Qu’est ce qu‘un SQL injection? Les menaces. Technique d’exploitation. Contre-mesure. Démonstration.

Qu’est ce qu‘un SQL injection? Insertion ou "modification" d'une requête SQL via l'entrée des données en provenance d’un client d’une application . Consiste à placer des instructions SQL dans le champ de saisie de l'utilisateur. =>Principalement l’entrée d'utilisateur est utilisé dans la construction d'une requête SQL afin de contrôler une base de données.

Sources d’injection Injection via les inputs utilisateurs. Chaine de caractères malicieuse dans les formes web. Injection via les cookies. Modification des champs des cookies pour contenir du code malicieux. Injection via les variables des serveurs. Les entêtes sont manipulés pour contenir du code malicieux. En-têtes HTTP sont des informations de commande transmis de clients Web aux serveurs Web sur des requêtes HTTP et des serveurs Web pour les clients Web sur les réponses HTTP. Chaque en-tête consiste normalement en une seule ligne de texte ASCII avec un nom et une valeur.

But Extraction des informations. Ajout ou modification des informations. Effectuer des dénis de service. Contourner l'authentification. Exécution des commandes à distance.

Les menaces(1/2) Exploit réussi par injection SQL Lecture des données sensibles de la base de données. Modification des données de bases de données (INSERT / UPDATE / DROP). Exécution des opérations d'administration sur la base de données (l'arrêt du SGBD).

Les menaces(2/2) Attaques par injection SQL Permettre à des attaquants d’avoir une identité frauduleuse . Permettre la divulgation complète de toutes les données sur le système. Entraîner des problèmes tels que la répudiation des transactions annuler. Détruire les données ou les rendre autrement indisponible. Devenir administrateur de la serveur de base de données. Dans certains cas, les commandes d'émission visent le système d'exploitation.

Technique d’exploitation Exploitation par technique de l’union. Exploitation par technique booléenne(Tautologies). Exploitation par technique basée erreur. Piggybacked Queries. Etc…

Technique d’exploitation Exemple(1/3) Union: =>Les noms de colonnes utilisées dans le premier SELECT seront utilisées comme nom de champs pour les résultats retournés. Select login,pass from admin where login='' UNION SELECT login,pass from admin/*' and pass='$pass‘

Technique d’exploitation Exemple(2/3) Piggybacked Queries Requête falsifié a exécuter par la base de données. =>Dépend de la connaissance de la structure base de données (exemple nom de la table). SELECT prodinfo FROM prodtable WHERE prodname= ‘; DROP TABLE prodinfo;-- ‘ Input string

Technique d’exploitation Exemple(3/3) Tautologies Création d’une requête qui est évalué à 1. Hypothèse toujours vraie. SELECT prodinfo FROM prodtable WHERE login= ‘user‘ or 1=1 –– ‘ AND pass=‘vide’ Input string

Autres injection possible En utilisant des injections SQL, les attaquants peuvent: Ajouter de nouvelles données à la base de données Modifier les données actuellement dans la base de données en exécutant un UPDATE SQL injecté.

Contre-mesure (1/2) Validation d'entrée(input). Limité la longueur de l’entrée. Vérifier la syntaxe de l'entrée de la validité(dates/@ email/etc…). Éviter les messages d'erreur détaillés.

Contre-mesure (2/2) Limiter les autorisations de base de données et séparer les utilisateurs. Détection des mots indésirables dans les requêtes comme insert update …. Utiliser les fonctions prévues à protéger les chaînes. mysql_real_escape_string()