Skip to content
Snippets Groups Projects
Commit 43293028 authored by Vincent Mazenod's avatar Vincent Mazenod
Browse files

sunday evening dix

parent 4bef39b7
No related branches found
No related tags found
No related merge requests found
Pipeline #5001 passed
......@@ -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
......
......@@ -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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment