--- title: TATT2 - Cours 3 description: Premier TP tags: TATT2, moemoea.fierin --- [TOC] # Introduction Vulnerabilite tres facile a exploiter # Authentification ## Methode foireuse **Méthode 1:** generer une url coplexe et quoi est donne au seul personne concernée. Rep: Ce n'est pas une bonne methode d'authen car il peut y avoir du brute force, et on n'est jamais a l'abri d'une erreur. En plus aucune tracabilité en plus. Certains navigateur journalise les requetes qu'on fait donc le lien reste pas secret tres longtm. **Méthode 2**: Mot de passe gere en javascrip Rep: code qui tourne cote client on fait un clck droit et on affiche le code de la page et on vasur le document location. **Methode 3:** Trouve un moyen d'entrer sur cette page http://qgx.fr/epita/web_auth/auth_1.html ``` <html> <title>authentication</title> <head> <script Language=JavaScript src=md5.js> </script> <script Language=JavaScript> function auth() { p=prompt('Password'); if(md5(p)=='afdceda2236462ec9a3859c7f5da3a5e') { document.location.href='auth5fger.html'; exit; } alert('Incorrect password'); } </script> </head> <body> <input type=button value='Loggin in' onClick=auth()> </body> </html> ``` SUCCESS at: http://qgx.fr/epita/web_auth/auth5fger.html **Methode 4:** Les mots de passesont en claire Rep: ## Meilleur Methode Plus de mdp en claire il affiche un entete restricted aucune probleme d'utilisr ses methode la a condition de chiffrer tout ca en HTTPS (legit) Fichier .Httpacces contenant les directives d'auth et interpreter par apache programme htpasswd pour modifier le fichier de mot de passe Autre exemple: les pers qui sont autoriser a avoir acces au rep sont les utilisateurs valides => bone meth avec apache - stockage dans une base LDAP SQL - ne pas precier limit GET,POST sinon contournable avec d'autre methode HTTP => si le serv accept d'autre tyoe de requete on piurra quand meme recup le contenu des pages. httpasswd -c /path/ httpasswd Donc les meilleures strats c'est: - Base de donnée - htaccess ## Suivi d'une connexion Ce qu'on fait a un instant n on va pas ds'en souvenir pour resoudre ca; mecanisme de suivi de connexion les methodes moches: - aucun suivi ou suivi partiel - utilisation de variables POST et GET pour passer de page en page. Les logins et mdp s ont journaliser => pas bon en GET - cookies: c'est quoi un cookie ? un truc delicieux Cookie de base pas dangeureux car simplement une valeur de variable mais le devient car on peut tracer les utilisateurs dans un cookie: pas de donnée sensible uniquement identifiants, secure, ... ils ont des contrats avec plein de sites commercants sur ces sites il y'a des frames et dedans ils peuvent dire a chaque fois qu'on charge la page ca charge le cookie. Si qqn vole nos cookies, il peut se co avec notre compte puisqu'il est utiliser pour se co. Le champ secure est obligatoire pour envoyer des cookies, sinon le nav ne voudra pas executer la requete. # Execution de code **Généralités:** - problème possible: manque de verif des entrees donnée utilisateur - consequenc: execution de code arbitraite sur le serv en tant que compte utiliser par le service Web **Execution de commande shell - Un code foireux** - En Perl: open avec un | c'est terrible car permet d'executer du code - system("cat files/$fichier") => bien foireux car on peut mettre un ';' pour ajouter d'autres commandes **Analyse - deux problemes** Liste de blanche de fichiers aurait ete le top **autre cas foireux** Equivalent de exec exercice: https://pentesterlab.com/exercises/web_for_pentester/course ## Inclusion de fichier exemples PHPH: ``` pages = $_GET["page"]; include ("pages/".$page); http://www.site.come. .... ``` ### SQL injection: On peut recup tous les noms des tables avec : INFORMATION_SCHEMA.columns ' UNION SELECT table_name, column_name FROM INFORMATION_SCHEMA.columns --%20