diff --git a/Makefile b/Makefile index 98991182aa244475a69b65187c950ef97ac6e156..491608ec405d7cb78967215c5cbd4f482167f4d6 100644 --- a/Makefile +++ b/Makefile @@ -7,12 +7,12 @@ BLUE := \033[34m MAGENTA := \033[35m SHELL := /bin/bash -IMAGES := $(shell docker-compose config --services) +IMAGES := $(shell docker compose config --services) TAG := $(shell git rev-parse --short HEAD) VOLUMES := content/node_modules output # Executables (local) -DOCKER_COMP := docker-compose +DOCKER_COMP := docker compose .DEFAULT_GOAL := help # Docker containers diff --git a/content/Etudiants/zz2-f5-websec.md b/content/Etudiants/zz2-f5-websec.md index b37563c0910c87c3c6d2b74b037293182cbb0208..35936cde5ca9494c8951dc2929ca567d43afc150 100644 --- a/content/Etudiants/zz2-f5-websec.md +++ b/content/Etudiants/zz2-f5-websec.md @@ -225,6 +225,36 @@ Tags: cours <hr /> +## 📂 présentation des VMs + +* **Kali** est notre VM offensive, son OS est [Kali 2](https://www.kali.org) et possède de nombreux outils pour la sécurité informatique. + * C'est à partir de cette VM que vous suivrez le cours et lancerez toutes les attaques + * nom d'utilisateur: kali + * mot de passe: kali + +* **DVWA** est la VM qui héberge l'application vulnérable [DVWA (Damn Vulnerable Web Application)](https://github.com/digininja/DVWA). + * C'est sur cette VM que nous allons tester toutes nos attaques + * Vous pouvez aussi suivre les cours une dvwa déployé sur votre [VM perso](https://doc.isima.fr/pedagogie/vm/) + * **l'installation de DVWA** sur votre [VM perso](https://doc.isima.fr/pedagogie/vm/) fait partie de l'évaluation (c.f. section [Evaluation / Installer DVWA sur sa VM perso (2 points)](#installer-dvwa-sur-sa-vm-perso-2-points)) + * nom d'utilisateur: student + * mot de passe: student + +* **debian** héberge la vulnérabilité drupalgeddon présentée en fin de cycle de cours + * nom d'utilisateur: student + * mot de passe: student + +* **proxy** héberge la vulnérabilité heratbleed présenté en début de cours + * nom d'utilisateur: student + * mot de passe: student + +* **debian11** est une fresh install de debian 11, qui vous permettra de suivre le déploiement de DVWA en cas de [VM perso](https://doc.isima.fr/pedagogie/vm/) indisponible + * nom d'utilisateur: student + * mot de passe: student + +Vous trouverez ci après comment redéployer tout cela sur n'importe quelle machine + +<hr /> + ## 💻 Recréer l'environnement de cours dans VirtualBox * testé avec [VirtualBox 7.0](https://www.virtualbox.org/wiki/Downloads) sous [Ubuntu jammy](http://releases.ubuntu.com/jammy/) @@ -243,7 +273,7 @@ voir [https://drive.mesocentre.uca.fr/d/69e5535b0b88425396d7/](https://drive.mes * [dvwa.ova](https://drive.mesocentre.uca.fr/d/69e5535b0b88425396d7/files/?p=/dvwa.ova&dl=1) * [debian.ova](https://drive.mesocentre.uca.fr/d/69e5535b0b88425396d7/files/?p=/debian.ova&dl=1) * [proxy.ova](https://drive.mesocentre.uca.fr/d/69e5535b0b88425396d7/files/?p=/proxy.ova&dl=1) -* [thenetwork](https://drive.mesocentre.uca.fr/d/69e5535b0b88425396d7/files/?p=/thenetwork.ova&dl=1) +* [debian11](https://drive.mesocentre.uca.fr/d/69e5535b0b88425396d7/files/?p=/debian11.ova&dl=1) <div class="panel panel-warning"> <div class="panel-heading"> @@ -261,7 +291,7 @@ vboxmanage import kali.ova vboxmanage import dvwa.ova vboxmanage import debian.ova vboxmanage import proxy.ova -vboxmanage import thenetwork.ova +vboxmanage import debian11.ova ``` ### Configurer le réseau pour chaque vm @@ -271,12 +301,12 @@ vboxmanage modifyvm kali --nic1 natnetwork --nat-network1 natwebsec vboxmanage modifyvm dvwa --nic1 natnetwork --nat-network1 natwebsec vboxmanage modifyvm debian --nic1 natnetwork --nat-network1 natwebsec vboxmanage modifyvm proxy --nic1 natnetwork --nat-network1 natwebsec -vboxmanage modifyvm thenetwork --nic1 natnetwork --nat-network1 natwebsec +vboxmanage modifyvm debian11 --nic1 natnetwork --nat-network1 natwebsec ```  -### (fix) En cas de réseau injoignable sur proxy et thenetwork +### (fix) En cas de réseau injoignable sur proxy si @@ -356,9 +386,6 @@ Ce bug est dû à la numérotation fantaisiste d'Ubuntu des interfaces réseau . ``` # SecLab -## thenetwork -172.16.76.142 thenetwork - ## proxy 172.16.76.143 proxy secured heart.bleed fo.ol #proxied version of dum.my @@ -372,6 +399,9 @@ Ce bug est dû à la numérotation fantaisiste d'Ubuntu des interfaces réseau . # dvwa 172.16.76.146 dvwa dvwa.com dv.wa +# dvwa +172.16.76.147 debian11 + # host 172.16.76.1 us.er ``` @@ -423,7 +453,7 @@ Ce bug est dû à la numérotation fantaisiste d'Ubuntu des interfaces réseau . * si un groupe souhaite travailler sur [A10:2021-Falsification de requête côté serveur](https://owasp.org/Top10/fr/A10_2021-Server-Side_Request_Forgery_%28SSRF%29/) il est possible d'échanger avec une autre vulnérabilité * **Vous vous organiserez avec le fichier Excel [exposés FISA 2023-2024](https://ucafr.sharepoint.com/:x:/s/websec/EbKNHMhwplZHhA_GW0N80oQBKj6guKeRuPQsd0eJWJLojA?e=gVKl4y)** -### 🔨 Installer DVWA sur sa VM perso (8 points) +### 🔨 Installer DVWA sur sa VM perso (2 points) * [https://github.com/digininja/DVWA#linux-packages](https://github.com/digininja/DVWA#linux-packages) @@ -453,6 +483,7 @@ Vous avez droit à autant de proposition que vous le souhaitez, car il y a fort </div> </div> +<!-- ### 🔥 audit de sécurité sur 2 heures #### thenetwork @@ -510,6 +541,7 @@ Chaque vulnérabilité est notée sur 6. Il reste donc 2 points qui seront attri - découverte d'une quatrième faille (j'en ai vu au moins une autre ...) Amusez vous bien :-* +--> <!-- ### Projet diff --git a/content/slides/1337/md/csp.md b/content/slides/1337/md/csp.md index 29cef1550d787f369195d53892bca11ea28bfb7e..236ad284b0b5cc6650eb1a48aa32e54b42fe4f64 100644 --- a/content/slides/1337/md/csp.md +++ b/content/slides/1337/md/csp.md @@ -3,7 +3,7 @@ ## a.k.a. Content Security Policy -### [<i class="fa fa-medkit"></i> **CSP**: Content Security Policy](https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives) +### <i class="fa fa-medkit"></i> **CSP**: Content Security Policy * En-tête renvoyée côté serveur * protéger son contenu @@ -11,8 +11,10 @@ * possibilité de reporting * quelles tentatives ont été menées +* https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives -### [<i class="fa fa-medkit"></i> **CSP**: Content Security Policy](https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives) + +### <i class="fa fa-medkit"></i> **CSP**: Content Security Policy ```http Content-Security-Policy: @@ -25,7 +27,7 @@ Content-Security-Policy: * les balises iframes ne doivent pas être interprétées -### [<i class="fa fa-medkit"></i> **CSP**: Content Security Policy](https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives) +### <i class="fa fa-medkit"></i> **CSP**: Content Security Policy <!-- .element style="text-align: center" --> @@ -45,14 +47,21 @@ Content-Security-Policy: ``` * écriture d'un fichier js sur l'hôte local via une autre faille [upload](upload.html) par exemple + + +### <i class="fa-solid fa-bomb"></i> CSP / low + * exécution directement sur [https://pastebin.com/raw/SAB3JTJc](https://pastebin.com/raw/SAB3JTJc) - * ne fonctione pas depuis Firefox 72 car l'entête [X-Content-Type-Options](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options) force la désactivation du [MIME sniffing](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#mime_sniffing) - réponse pastebin + * réponse pastebin + ```http - .. + ... X-Content-Type-Options: nosniff ... ``` - * https://chromium.googlesource.com/chromium/src/+/master/services/network/cross_origin_read_blocking_explainer.md - * https://www.komodosec.com/post/mime-sniffing-xss - * https://dev.to/ms_74/what-is-corb-3m3f \ No newline at end of file + + * ne fonctionne pas depuis Firefox 72 + * l'entête [X-Content-Type-Options](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options) force la désactivation du [MIME sniffing](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#mime_sniffing) + +* https://www.komodosec.com/post/mime-sniffing-xss +* https://medium.com/@puneet29/what-is-mime-sniffing-4f402d303dc8 diff --git a/content/slides/1337/md/sop.md b/content/slides/1337/md/sop.md index 8b8a6c291a79e512a6582a4a2830778105d41f30..6c551e261ef1c35aa719ce7bd9a678229e7cdd7b 100644 --- a/content/slides/1337/md/sop.md +++ b/content/slides/1337/md/sop.md @@ -1,16 +1,20 @@ -# SOP +# SOP / CORS / CORS ## a.k.a Same Origin Policy +## a.k.a Cross Origin Resource Sharing +## a.k.a Cross-Origin Read Blocking -## [<i class="fa fa-medkit"></i> **SOP**: Same Origin Policy](https://developer.mozilla.org/fr/docs/Web/JavaScript/) +### <i class="fa fa-medkit"></i> **SOP** / Same Origin Policy - * concerne *XMLHttpRequest* - * restreint les interactionsaux ressources de même origine - * protocole + "://" + hôte + ":" + [port] +* https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy +* restreint les interactionsaux ressources de même origine + * protocole + "://" + hôte + ":" + [port] + * concerne `<script>`, `<link>`, `<img>`, `<video>`, `<audio>`, `<object>`, `<embed>`, `@font-face`, `<iframe>` -## [<i class="fa fa-medkit"></i> **SOP**: Same Origin Policy](https://developer.mozilla.org/fr/docs/Web/JavaScript/) + +### <i class="fa fa-medkit"></i> **SOP** / Same Origin Policy protège l'intégrité de la page @@ -27,7 +31,7 @@ $(function() { // on Load jQuery style <!-- .element style="text-align: center" --> -## [<i class="fa fa-medkit"></i> **SOP**: Same Origin Policy](https://developer.mozilla.org/fr/docs/Web/JavaScript/) +### <i class="fa fa-medkit"></i> **SOP** / Same Origin Policy protège la confidentialité des sessions @@ -44,7 +48,7 @@ $(function() { // on Load jQuery style ``` -## [<i class="fa fa-medkit"></i> **CORS**: Cross Origin Resource Sharing](https://developer.mozilla.org/fr/docs/HTTP/Access_control_CORS) +### <i class="fa fa-medkit"></i> **CORS** / Cross Origin Resource Sharing * contrôler les accès en mode cross-site * concerne l'échange entre fournisseurs de services @@ -52,7 +56,7 @@ $(function() { // on Load jQuery style * entre sources sûres niveau injection & confidentialité -## [<i class="fa fa-medkit"></i> **CORS** Cross Origin Resource Sharing](https://developer.mozilla.org/fr/docs/HTTP/Access_control_CORS) +### <i class="fa fa-medkit"></i> **CORS** / Cross Origin Resource Sharing le client ajoute automatiquement une en-tête HTTP @@ -73,7 +77,7 @@ Access-Control-Allow-Origin: * ``` -## [<i class="fa fa-medkit"></i> **CORS** Cross Origin Resource Sharing](https://developer.mozilla.org/fr/docs/HTTP/Access_control_CORS) +### <i class="fa fa-medkit"></i> **CORS** / Cross Origin Resource Sharing * autorise tous les verbes HTTP * [JSONP](http://igm.univ-mlv.fr/~dr/XPOSE2009/ajax_sop_jsonp/jsonp_presentation.html) n'autorisait que la méthode GET @@ -85,3 +89,11 @@ Note: - doit être supporté par le navigateur - la valeur * est possible mais risquée - requêtes simples, pré-vérifiées avec le verbe OPTIONS, avec habilitations en forcant l'envoie du cookie + + +### <i class="fa fa-medkit"></i> **CORB** / Cross-Origin Read Blocking + +contrôle la cohérence du type MIME avec la balise appelante + +* https://chromium.googlesource.com/chromium/src/+/master/services/network/cross_origin_read_blocking_explainer.md +* https://dev.to/ms_74/what-is-corb-3m3f \ No newline at end of file