Geospace

Une journée de sécurité web (00)

Cette journée est une introduction à la sécurité web. Cette expression regroupe généralement toutes les attaques que l’on peut infliger aux sites web et autres applications que l’on consomme à travers un navigateur.

Il s’agit certainement de la branche la plus populaire de la sécurité informatique. Les média grand public en parlent régulièrement, les entreprises y mettent des sommes folles… Et ce n’est pas près de s’arrêter ! De plus en plus de choses se passent sur le web. De nouveaux frameworks, de nouveaux langages et de nouvelles technologies émergent tous les ans, chacun avec son lot de vulnérabilités. N’hésitez pas à parcourir le site de l’OWASP pour des statistiques ou même des détails techniques. C’est vraiment une super ressource.

Les compétences requises en sécurité web sont, entre autres :

Côté client, le langage roi est JavaScript. Nous verrons quelques vulnérabilités client-side au cours de cette journée.

Côté serveur, on a une pluralité beaucoup plus imporante : PHP, JavaScript, Python, Go, C++… On retrouve également des langages de base de données.

D’une manière générale, comprendre le langage dans lequel est écrit l’application aidera grandement quand il s’agit de lui faire du mal.

Pour les besoins de cette piscine, nous avons dû choisir un langage cible pour les épreuves serveur. Nous cherchions un langage très utilisé en production mais présentant, par design, de nombreuses vulnérabilités. Un langage très permissif qui vous permettrait de laisser libre cours à votre créativité. Un langage regroupant toute la faune et la flore des problèmes de sécurité dans les applications web. Nous parlons bien sur de PHP.

Exercice 00

Pour ce premier exercice, vous allez devoir produire un schéma. L’objectif est de visualiser ce qui se passe dans la situation suivante : un utilisateur appuie sur le bouton “Se Connecter” d’un site web. L’utilisateur constate que la page se recharge. Une fois le chargement terminé, il est connecté, et sur sa page de profil.

Vous devez faire apparaitre les légendes suivantes :

Ne cherchez pas à faire quelque chose de joli. Un gribouillage sur un bout de papier fera amplement l’affaire.

Exercice 01

Continuons nos recherches sur le HTTP…

Répondez aux questions suivantes :

Vous allez maintenant assister à une démonstration du logiciel Burp. Soyez attentif. Nous vous conseillons de tout de suite prendre l’habitude de l’utiliser.

Exercice 02

Vous devez affronter cette épreuve.

Pour vous aider, répondez aux questions suivantes :

Enfin, expliquez pourquoi on ne fait jamais de sécurité côté client.

Exercice 03

Vous devez affronter cette épreuve.

Voici des questions pour vous aider :

Expliquez le principe d’une XSS. Expliquez la différence entre une XSS réfléchie et une XSS stockée. Y’a-t-il des interactions avec le serveur dans le cadre d’une XSS ?

Exercice 04

Vous devez affronter cette épreuve.

Nous allons réaliser un schéma afin de bien visualiser les étapes de l’attaque. Vous devez faire apparaître les éléments suivants :

Expliquez le principe d’une CSRF. Donnez un exemple de mécanisme permettant de s’en protéger.

Exercie 05

Assez de sécurité côté client… Vous avez compris le principe : qui dit point d’entrée mal filtré, dit vulnérabilité. Il ne faut jamais faire confiance à l’utilisateur et surtout ne jamais lui permettre d’exécuter du JavaScript là où bon lui semble.

Passons côté serveur…

Vous devez affronte l’épreuve numéro 17 de WebSec.

Un indice : les adeptes de PHP sont souvent de très bon jongleurs…

Exercice 06

Vous devez affronter l’épreuve numéro 08 de WebSec.

Un indice : PHP est le genre de gars qui adore les emballages mais qui se soucie assez peu du cadeau en lui même…

Un autre indice : au final, ça veut dire quoi “valide” ?

Exercice 07

Vous devez affronter l’épreuve numéro 28 de WebSec.

Un indice : il va falloir aller vite…

Un autre indice : l’exercice 05 !

Exercice 08

Merci de nous faire part de vos questions, remarques, suggestions ou quoi que ce soit à l’adresse lucas.santoni@epitech.eu.

Merci aux créateurs d’épreuves sur Root-Me et WebSec pour leur merveilleux travail.