Aller au contenu principal

TP Sécurité

Objectifs​

  • Utiliser l'outil de développement de votre navigateur web pour voir et modifier le code HTML et JavaScript
  • Comprendre le principe de l'injection SQL
  • Comprendre le principe du Cross-site scripting (XSS)

Exercices​

Outils de développement​

L'outils de développement est intégré dans les navigateurs Web et permet de voir et modifier le code HTML, CSS et JavaScript des pages web.

  • Ouvrir un navigateur Web (Firefox ou Chrome).
  • Ouvrir les outils de développement :
    • Clic droit sur la page Web > Inspecter
    • Ou F12
    • Ou sous MacOS : Cmd + Option + I
    • Ou sous Windows/Linux : Ctrl + Shift + I
  • Explorer les différents panneaux qui seront utiles pour les exercices :
    • Inspecteur/Elements pour voir et modifier dans les codes HTML et CSS de la page.
    • Réseau pour voir et modifier les requêtes HTTP effectuées par votre navigateur.
    • Application ou Stockage pour voir et modifier les cookies et le cache de votre navigateur.

Code source​

Trouver le mot de passe sur HTML - Code source (cliquer sur le lien).

Indice 1

Utiliser les outils de développement de la page.

Indice 2

Regarder le code HTML de la page.

Validation :

Référence

Mot de passe faible​

Se connecter sur Mot de passe faible.

Indice 1

Il y a habituellement un utilisateur admin dans les applications web.

Indice 2

Le mot de passe est faible, il est donc possible de le deviner.

Indice 3

Et si le mot de passe était le même que le nom d'utilisateur ?

Validation :

Référence

HTTP - Bouton désactivé​

Se connecter sur HTTP - Bouton désactivé.

Indice 1

Le code HTML est exécuté par votre navigateur, il est donc possible de le modifier en affichant le code HTML de la page.

Indice 2

L'attribut disabled est utilisé pour désactiver un élément HTML.

Indice 3

En double-cliquant sur le code du bouton, il est possible de supprimer l'attribut disabled.

Indice 4

On peut mettre n'importe quel nom d'utilisateur.

Validation :

Référence

Javascript - Source​

Trouver le mot de passe sur Javascript - Source.

Indice 1

Regarder le code HTML de la page. On peut ouvrir les balises en cliquant sur ►.

Indice 2

Le code JavaScript est dans le head de la page HTML.

Indice 3

Quelle comparaison est faite avec la variable pass ?

Validation :

Référence

Javascript - Authentification​

Se connecter sur Javascript - Authentification.

Indice 1

Le code JavaScript est dans un fichier externe. Ajouter le chemin dans l'URL.

Indice 2

Le fichier est login.js, donc l'URL complète est : http://challenge01.root-me.org/web-client/ch9/login.js.

Validation :

Référence

Javascript - Obfuscation 1​

Trouver le mot de passe sur Javascript - Obfuscation 1.

Indice 1

Regarder le code JavaScript de la page.

Indice 2

L'Encodage-pourcent est souvent utilisé pour mettre des caractères spéciaux dans les URL.

Indice 3

Validation :

Référence

HTTP - Structure des répertoires​

Trouver le mot de passe sur HTTP - Structure des répertoires.

Indice 1

Un fichier html est inclus d'après le code source de la page. Ajouter le chemin dans l'URL.

Indice 2

Le fichier inclus est admin/pass.html. Le chemin est donc http://challenge01.root-me.org/web-serveur/ch4/admin/pass.html

Indice 3

Naviguer dans les répertoires en commençant par admin/ en enlevant pass.html.

Validation :

Explication

Référence

Javascript - Obfuscation 2 (avancé)​

Trouver le mot de passe sur Javascript - Obfuscation 2.

Indice 1

On peut exécuter du code JavaScript dans la console des outils de développement.

Indice 2

Copier la valeur de la variable pass, la coller dans la console et appuyer sur Enter pour la décoder.

Indice 3

Copier le résultat sans les guillemets et le coller dans la console.

Indice 4

Répéter l'opération jusqu'à obtenir le mot de passe.

Validation :

Référence

Javascript - Authentification 2 (avancé)​

Se connecter sur Javascript - Authentification 2.

Indice 1

Bien lire le code dans le fichier JavaScript externe.

Indice 2

La fonction .split(":") sépare une chaîne de caractères en plusieurs parties en utilisant le caractère : comme séparateur. Par exemple, la chaîne "user:password".split(":") devient un tableau avec deux éléments : ["user", "password"].

Indice 3

Que vaut la variable ThePassword ?

Validation :

Référence

HTTP - Cookies (avancé)​

Trouver le mot de passe sur HTTP - Cookies.

Indice 1

Pour modifier les cookies :

Validation :

Référence

HTTP - User-agent (avancé)​

Trouver le mot de passe sur HTTP - User-agent

Indice 1

Pour modifier le user-agent de votre navigateur web : https://developer.chrome.com/docs/devtools/device-mode/override-user-agent?hl=fr

Validation :

Référence

Autres attaques courantes​

Injection SQL​

https://www.hacksplaining.com/exercises/sql-injection

Cross-site scripting (XSS)​

https://www.hacksplaining.com/exercises/xss-stored

https://xss-game.appspot.com/

Autres​

https://www.hacksplaining.com/lessons

Références​

Illustrations​