From 5a510702aa8e47d0daeaffebee05e7fa83ecfb56 Mon Sep 17 00:00:00 2001
From: Vincent Mazenod <vmazenod@gmail.com>
Date: Thu, 7 Sep 2023 17:34:59 +0200
Subject: [PATCH] update websec

---
 Makefile                           |  4 +--
 content/Etudiants/zz2-f5-websec.md | 48 +++++++++++++++++++++++++-----
 content/slides/1337/md/csp.md      | 27 +++++++++++------
 content/slides/1337/md/sop.md      | 32 +++++++++++++-------
 4 files changed, 82 insertions(+), 29 deletions(-)

diff --git a/Makefile b/Makefile
index 9899118..491608e 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 b37563c..35936cd 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
 ```
 
 ![réseau vm](images/etudiants/vm-network.png)
 
-### (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 29cef15..236ad28 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
 
 ![CSP](images/xss/csp.png "CSP")<!-- .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 8b8a6c2..6c551e2 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
 ![SOP](images/xss/sop.png "SOP")<!-- .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
-- 
GitLab