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.

Slides:



Advertisements
Présentations similaires
REFERENTIEL DE LA SERIE STG
Advertisements

Active Directory Windows 2003 Server
Etudes de cas A vous de faire Bases de données DRES – B. TALON.
CRÉER UNE APPLICATION INTERNET RELIEE A UNE BASE DE DONNEES
Botnet, défense en profondeur
ASP.NET 2.0 et la sécurité Nicolas CLERC
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
Soutenance de stage · Par : Guillaume Prévost · Entreprise : Cynetic
Sécurité Informatique
Cours n°3 Les formulaires
Failles de sécurité INJECTION
Révision Avant lintra – Architecture de lordinateur, les composants, le fonctionnement, codage – Système dexploitation: organisation des données (fichier),
Common Gateway Interface
Active Directory Windows 2003 Server
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.
Développement dapplications web Initiation à la sécurité 1.
Le langage PHP 5.
WD et Java Les Pièges, comment les contourner ? 22/11/2008.
Connexion en mode application. Bases de données - Yann Loyer2 Connexion en mode application Pour tout type dutilisateurs : –passif, actif, gérant Permettre.
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.
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
Services fournis par le SI et technologies associées
Jeudi, 20 août 2009 Sécurité informatique Cégep de St-Hyacinthe Par Hugo St-Louis.
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.
1 CSI 2532 Lab6 Application Web et DB Février 27, 2012.
Java Authentication And Authorization Service API
Le protocole d’authentification
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
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.
Yonel Grusson 1 SQL SERVER 2000 CLIENT/SERVEUR. Yonel Grusson 2 PLAN Présentation Installation Résultat de l'installation L'administration –Par le SQL.
 Syntaxe du langage PHP
 Requêtes MySQL en PHP Introduction
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Auvray Vincent Blanchy François Bonmariage Nicolas Mélon Laurent
Windows 2003 Server Modification du mode de domaine
Institut Supérieur d’Informatique
Module : Pages Web Dynamiques (Production Électronique Avancée)
 Formulaires HTML : traiter les entrées utilisateur
En route vers le déploiement . . .
Conception de Site Webs Interactifs Cours 7 Patrick Reuter
Initiation au web dynamique Licence Professionnelle.
Module 1 : Vue d'ensemble de Microsoft SQL Server
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
Sécurité des systèmes d’information: Web Security & Honeypots
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
LES BASES DE DONNEES PRÉSENTÉ PAR CATHY ET THIBAULT.
Séance /10/2004 SGBD - Approches & Principes.
Cours n°2 Implémentation et exploitation
Principes et variables
Au dela du top 10. Contexte Dans le cours de sécurité précédent (GTI619), vous avez vu le top 10 de l’OWASP. Ce cours vise à vous présenter au delà du.
Installation du PGI – CEGID
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é.
FACTORY systemes Module 6 Page 6-1 La base de données InSQL FORMATION InSQL 7.0.
(fait son épicerie les jeudi). Cross site Scripting est l'attaque web la plus commune.
Développement d’applications Web
Transcription de la présentation:

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 à l’attaquant d’influencer l’exécution d’un programme et d’exécuter son propre code Profiter des informations soutirées Profiter de l’exécution des commandes de l’attaquant Peut être très dommageable Vol de données Prise de contrôle du serveur Facile à trouver et à éviter Encore commun même dans les environnements managés

Environnements affectés Tout environnement qui traite de l’entrée utilisateur et qui soumet cette entrée à des modules externes Exemples de modules SQL (MS SQL, MySQL, PostgreSQL) Commandes (cmd, sh) / HTTP LDAP HTML (XSS) (Côté client)

Exemples de cas Passer outre une authentification (accès admin) Bell Voler des mots de passe Les leaks de mot de passe Exécuter des virus/vers Code Red (unmanagé, buffer overflow)

Injection SQL Ne pas construire de requêtes en concaténant bêtement les chaînes Le classique ‘ OR 1=1’ --’ Erreurs dans le contenu Indiquent une injection SQL possible Attaque aveugle La base de données peut montrer les erreurs Révéler le schéma de la base et d’autres informations

Injection SQL Révéler trop d’information sur la configuration de l’application Source:

Injection SQL Situation normale Avec la chaîne « ’ OR 1=1 -- » SELECT * FROM Utilisateur WHERE NomUtilisateur=' ' AND MotDePasse=' ' AND EstAdmin=1; string.Format("SELECT * FROM Utilisateur WHERE NomUtilisateur='{0}' AND MotDePasse='{1}' AND EstAdmin=1;", nomUtilisateur, HasherMotDePasse(motDePasse)); SELECT * FROM Utilisateur WHERE NomUtilisateur='' OR 1=1; -- AND MotDePasse=' ' AND EstAdmin=1;

Injection de commande Encore une fois, ne pas construire une commande à exécuter en en concaténant bêtement les chaînes Sur Windows, exécuter plusieurs commandes avec le ‘&’, commenter avec ‘rem’ Même principe qu’en SQL Ajouter nos propres commandes à celle déjà existante mkdir " " mkdir "C:\www\nouveauclient" & start C:\Windows\System32\calc.exe & rem " Si le nom complet du répertoire est « C:\www\nouveauclient" & start C:\Windows\System32\calc.exe & rem » : ExecuterCommande(string.Format("mkdir \"{0}\"", pathAbsolu));

Injection et HTTP Les en-têtes sont des clés-valeurs séparées avec des entrée (‘\r\n’ ou 0x0d 0x0a) Donc avoir une valeur qui contient ‘\r\n’ permet d’ajouter des en-tête Dans un , ajouter l’en-tête pour une copie carbone (Bcc) Dans HTTP, créer une nouvelle réponse (plus rare) From: Jebediah's Junkyard \r\n To: Michael Jackson \r\n Subject: Confirmation de la commande #45\r\n From: Jebediah's Junkyard \r\n To: Mallory\r\n Bcc: Dummy: \r\n Subject: Confirmation de la commande #45\r\n Si votre nom est « Mallory\r\nBcc: »:

Prévention de la faille Utiliser les mécanismes pour séparer les données du code Requêtes préparées et binding en SQL Échapper TOUS les caractères spéciaux Prévoir tous les caractères qui sont spéciaux Sanitiser l’entrée utilisateur Certains caractères sont invalides dans certains cas Ne jamais faire confiance à l’entrée utilisateur Même dans les headers Tout ce qui peut être manipulé par l’utilisateur

Conclusion Faille facile à éviter et facile à trouver Malheureusement, elle est encore commune Par exemple, les versions plus anciennes de Drupal (un CMS) 7.32 dans la série des 7.x sont vulnérables à l’injection SQL dans leur module d’abstraction de SGBD (4 novembre 2014) NEVER TRUST USER INPUT NEVER TRUST USER INPUT (est-ce clair ?)