Skip to content

Atelier - Journée Cybersécurité 0x03

Ce document contient la liste des vulnérabilités explorées lors de la Journée Cybersécurité 0x03 présentée au Cégep de Shawinigan par ShawiSec le 15 octobre 2019.

L'atelier consiste à l'exploration de certains laboratoires offerts sur la plateforme Web Security Academy de PortSwigger.

Clickjacking

https://portswigger.net/web-security/clickjacking

On brouille la perception de l'utilisateur, alors qu'il pense effectuer une action, on l'intercepte pour la rediriger vers une autre ressource. On superpose un élément d'interface vulnérable transparent(iframe) au-dessus de l'élément d'appât et lorsque l'utilisateur tentera d'utiliser l'action, il démarrera en fait l'item masqué involontairement.

Protection:

  • Certains navigateurs n'autorisent pas les iframe avec une trop faible opacité.

  • Utiliser le mécanisme de Content Security Policy OU X-Frame-Options qui indique au navigateur de bloquer les iframes dans un domaine différent.

  • Attribut sameSite pour les cookie

  • Cheatsheet des mécanismes de protection

Laboratoires

CSRF: Cross-site request forgery

https://portswigger.net/web-security/csrf

Exécuter une action/URL à la place d'un utilisateur qui visite un autre site, sans lui demander d'interaction directe.

3 critères doivent exister pour exploiter un CSRF: - il existe une action pertinente(changement de courriel, création d'une ressource, etc.) accessible à l'utilisateur. - le navigateur authentifie directement l'utilisateur: cookie ou HTTP Basic Auth, par exemple. - les paramètres requis sont connus ou faciles à deviner.

Protection:

Laboratoires

XSS : Cross-site scripting

https://portswigger.net/web-security/cross-site-scripting

Exécution arbitraire de code JavaScript en tant qu'un utilisateur connecté. Le XSS est plus flexible dans les actions visées et permets une plus grande manipulation du système en tant que l'utilisateur. Tandis que le CSRF est unidirectionnel(une action est lancée, mais on ne peut manipuler le résultat et chainer les requêtes), le XSS permet de programmer des manipulations plus complexes, interpréter le résultat et récupérer des données.

Plus de détails sur la différence en XSS vs CSRF:
https://portswigger.net/web-security/csrf/xss-vs-csrf

3 types de failles XSS:

  • Reflected: Obtenue à partir de la requête HTTP courante

  • Stored: Stockée puis affichée ultérieurement dans l'application

  • DOM-based: Injectée à partir d'une manipulation du DOM

Les vulnérabilités XSS peuvent être accessibles dans différents contextes de l'application web:
https://portswigger.net/web-security/cross-site-scripting/contexts

Liste de différentes méthodes d'injection du JavaScript:
https://portswigger.net/web-security/cross-site-scripting/cheat-sheet

Protection:

  • Validation des valeurs reçue

  • Filtrer/encoder l'affichage des données

Laboratoires

Défi

Une exploitation efficace sera souvent la combinaison de plusieurs vulnérabilités pour augmenter l'impact.

Un VRAI défi!

À partir de cette introduction à certaines vulnérabilités, il est temps de relever le défi du CTF Hacker 101. Étant donné qu'il peut être très difficile d'apprendre lorsqu'on est bloqué sur un défi, on peut utiliser une explication des solutions pour comprendre la faille avant d'essayer de l'exploiter.