From 43293028b34fc049dac67e54a9ccff7d25a8dad5 Mon Sep 17 00:00:00 2001
From: Vincent Mazenod <vmazenod@gmail.com>
Date: Sun, 16 Feb 2020 21:51:42 +0100
Subject: [PATCH] sunday evening dix

---
 content/slides/1337/md/csrf.md |  6 ++---
 content/slides/1337/md/sqli.md | 40 +++++++++++++++++-----------------
 2 files changed, 22 insertions(+), 24 deletions(-)

diff --git a/content/slides/1337/md/csrf.md b/content/slides/1337/md/csrf.md
index ff4cb91..b1ea2aa 100644
--- a/content/slides/1337/md/csrf.md
+++ b/content/slides/1337/md/csrf.md
@@ -136,11 +136,9 @@ Note:
   * [CSRF stored - security high](http://dv.wa/vulnerabilities/csrf/)
 
 
-## <i class="fa fa-medkit"></i> Synchronizer Token Pattern     
+### <i class="fa fa-medkit"></i> Synchronizer Token Pattern     
 
-<div style="text-align:center">
-  ![alt text](images/csrf/csrf-stp.png "CSRF")
-</div>
+![alt text](images/csrf/csrf-stp.png "CSRF")
 
 
 ## <i class="fa fa-medkit"></i> Synchronizer Token Pattern     
diff --git a/content/slides/1337/md/sqli.md b/content/slides/1337/md/sqli.md
index 8deec2b..c62e5e2 100644
--- a/content/slides/1337/md/sqli.md
+++ b/content/slides/1337/md/sqli.md
@@ -7,8 +7,8 @@
 
 ### <i class="fa fa-cogs"></i> Principe
 * Une application envoie des données
-  * non *assinies* à un interpréteur
-* L'attaquant envoie des séquences de texte permettant d'exploiter l'interpréteur visé
+  * non **sanitized** à un interpréteur
+* L'attaquant envoie des séquences de texte permettant d'exploiter l'interpréteur visé (**payload**)
   * toutes sources de données peut être utilisées
       * paramètres HTTP, PATH_INFO, cookies, en-têtes HTTP, fichiers uploadés
       * au niveau de la requête [et de la réponse <i class="fa fa-reddit"></i>](http://i.imgur.com/8khrzf9.png)
@@ -42,7 +42,7 @@ Note:
 #### [<i class="fa fa-check-square"></i> Boolean (Blind)](https://www.owasp.org/index.php/Blind_SQL_Injection)
 
 * Pas de message d'erreur
-* Un comportement différent selon que la requête est valide ou non
+* Un comportement différent selon que la **payload** est exécutée ou non
   * nécessite en général d'itérer
     * avec un LIKE par exemple pour déduire lettre par lettre
 
@@ -52,7 +52,7 @@ Note:
 #### [<i class="fa fa-eye-slash"></i> (true) Blind](https://www.owasp.org/index.php/Blind_SQL_Injection)
 
 * Pas de message d'erreur
-* Pas de moyen de savoir si la requête est valide ou non
+* Pas de moyen de savoir si la **payload** a été éxécutée ou non
   * cas d'une redirection systématique
   * nécessite en général d'itérer
   * avec un LIKE par exemple pour déduire lettre par lettre
@@ -349,9 +349,9 @@ Surname: Me
 
 * Si aucun output n'est disponible
   * on ajoute du calcul artificiellement
-    * la requête est valide
+    * la **payload** est exécutée
       * le temps de réponse = temps de traitement + temps de calcul artificiel
-    * la requête est invalide
+    * la **payload** n'est pas exécutée
       * le temps  de réponse = temps de traitement
 
 problématique similaire à une booléenne
@@ -361,6 +361,20 @@ Note:
 - in fine même problème une fois scripter
 
 
+## <i class="fa fa-medkit"></i> Se préserver
+
+* [Ne plus utiliser les fonctions mysql_ leur préférer mysqli_](http://stackoverflow.com/questions/548986/mysql-vs-mysqli-in-php)
+* Utiliser des requêtes préparées
+  * PDO, ORM : Doctrine2, Propel
+* Être le plus silencieux possibles quant aux requêtes invalides
+  * [@](http://php.net/manual/fr/language.operators.errorcontrol.php) mais pas [or die()](http://php.net/manual/fr/function.die.php)
+  * [error_reporting](http://php.net/manual/fr/function.error-reporting.php), pas [mysql_error()](http://php.net/mysql_error) ni [mysqli_error()](http://php.net/manual/fr/mysqli.error.php)
+* repérer les requêtes suspectes dans les logs
+
+Note:
+- TODO regarder si les messages sont désactiables à partir de MySQL
+
+
 ## <i class="fa fa-medkit"></i> Se préserver
 
 * Filtrage par listes blanches
@@ -382,17 +396,3 @@ Note:
   * attention aux permissions sur la base de données
     * information_schema ...
 * Changer les préfixes de table des CMS quand c'est possible
-
-
-## <i class="fa fa-medkit"></i> Se préserver
-
-* [Ne plus utiliser les fonctions mysql_ leur préférer mysqli_](http://stackoverflow.com/questions/548986/mysql-vs-mysqli-in-php)
-* Utiliser des requêtes préparées
-  * PDO, ORM : Doctrine2, Propel
-* Être le plus silencieux possibles quant aux requêtes invalides
-  * [@](http://php.net/manual/fr/language.operators.errorcontrol.php) mais pas [or die()](http://php.net/manual/fr/function.die.php)
-  * [error_reporting](http://php.net/manual/fr/function.error-reporting.php), pas [mysql_error()](http://php.net/mysql_error) ni [mysqli_error()](http://php.net/manual/fr/mysqli.error.php)
-* repérer les requêtes suspectes dans les logs
-
-Note:
-- TODO regarder si les messages sont désactiables à partir de MySQL
-- 
GitLab