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