Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
web:injection_xss [2016/03/01 11:17] yorin |
web:injection_xss [2016/03/01 11:24] yorin |
||
---|---|---|---|
Ligne 114: | Ligne 114: | ||
Il arrive parfois que des protections soient mise en place pour empêcher ce genre d'attaque, voici quelque techniques pour bypasser ces protections. | Il arrive parfois que des protections soient mise en place pour empêcher ce genre d'attaque, voici quelque techniques pour bypasser ces protections. | ||
- | Bypassing magic_quotes_gpc : | + | __Bypassing magic_quotes_gpc :__ |
La fonction magic_quotes_gpc=on en php modifie les quotes qu'elles soient simple ou double (' ou ") en backslash (\). Par exemple <script>alert("Coucou");</script> sera filtré en <script>alert(\Coucou\);</script> empêchant ainsi le script de fonctionner. | La fonction magic_quotes_gpc=on en php modifie les quotes qu'elles soient simple ou double (' ou ") en backslash (\). Par exemple <script>alert("Coucou");</script> sera filtré en <script>alert(\Coucou\);</script> empêchant ainsi le script de fonctionner. | ||
Ligne 123: | Ligne 123: | ||
<code><script>String.fromCharCode(97, 108, 101, 114, 116, 40, 34, 67, 111, 117, 99, 111, 117, 34, 41, 59)</script></code> --> Qui sera normalement exécuté ! Pas de quote présente, aucun filtre à réalisé. | <code><script>String.fromCharCode(97, 108, 101, 114, 116, 40, 34, 67, 111, 117, 99, 111, 117, 34, 41, 59)</script></code> --> Qui sera normalement exécuté ! Pas de quote présente, aucun filtre à réalisé. | ||
- | Bypassing avec des valeurs Hexa : | + | __Bypassing avec des valeurs Hexa :__ |
Nous pouvons aussi convertir notre payload en hexa, notre <script>alert("Coucou");</script> devient : | Nous pouvons aussi convertir notre payload en hexa, notre <script>alert("Coucou");</script> devient : | ||
Ligne 129: | Ligne 129: | ||
<code>%3c%73%63%72%69%70%74%3e%61%6c%65%72%74%28%22%43%6f%75%63%6f%75%22%29%3b%3c%2f%73%63%72%69%70%74%3e</code> | <code>%3c%73%63%72%69%70%74%3e%61%6c%65%72%74%28%22%43%6f%75%63%6f%75%22%29%3b%3c%2f%73%63%72%69%70%74%3e</code> | ||
- | Bypassing par obfuscation : | + | __Bypassing par obfuscation :__ |
Il arrive parfois qu'un administrateur de site un peu feignant ne daigne pas insérer une réel protection et filtre les mots script, alert etc ... | Il arrive parfois qu'un administrateur de site un peu feignant ne daigne pas insérer une réel protection et filtre les mots script, alert etc ... | ||
un simple <code><ScRiPt>AlErT("Coucou");</sCrIpT></code> fera l'affaire ! | un simple <code><ScRiPt>AlErT("Coucou");</sCrIpT></code> fera l'affaire ! | ||
Ligne 135: | Ligne 136: | ||
Cela bien sur marche de moins en moins, mais parfois... ça suffit ! | Cela bien sur marche de moins en moins, mais parfois... ça suffit ! | ||
- | Bypassing par fermeture de tag : | + | __Bypassing par fermeture de tag :__ |
- | Il est possible que la XSS ne passe pas. Parfois il est nécessaire de fermer une balise afin que notre script soit exécuté : | + | Parfois il est nécessaire de fermer une balise afin que notre script soit exécuté : |
+ | Par exemple : Le contenu du Name est directement injecté dans l’attribut "class" de la balise qui contiendra le message envoyé. | ||
- | <code>"><script>alert("Coucou");</script></code> | + | <code>User"><script>alert("Coucou");</script></code> |
Source :[[http://venom630.free.fr/geo/tutz/securite_informatique/xss/]] | Source :[[http://venom630.free.fr/geo/tutz/securite_informatique/xss/]] |