Un Guide pratique pour la recherche XSS|Lucideus basée sur DOM

(ou comme on l’appelle dans certains textes, “XSS de type 0″) est une attaque XSS dans laquelle la charge utile d’attaque est exécutée à la suite de la modification de l ‘”environnement” DOM dans le navigateur de la victime utilisé par le script côté client d’origine, de sorte que le code côté client s’exécute de manière “inattendue”. Autrement dit, la page elle-même (la réponse HTTP) ne change pas, mais le code côté client contenu dans la page s’exécute différemment en raison des modifications malveillantes survenues dans l’environnement DOM.

Ceci contraste avec d’autres attaques XSS (stockées ou réfléchies), dans lesquelles la charge utile d’attaque est placée dans la page de réponse (en raison d’une faille côté serveur).

VIDÉO POC

Échappement HTML puis Échappement JavaScript Avant d’Insérer des Données non fiables dans le Sous-Texte HTML dans le Contexte d’exécution

Exemple de Méthodes HTML Dangereuses

Attributs

élément.innerHTML =”Balises et balises < HTML>”; élément

.outerHTML =”< Balises et balises HTML >”;

Méthodes

document.ecrire(“Balises et balises < HTML >”);

document.writeln(“Balises et balises < HTML >”);

Ligne directrice

Pour effectuer des mises à jour dynamiques en HTML dans le DOM safe, OWASP recommande

a) Encodage HTML, puis

b) encodage JavaScript de toutes les entrées non fiables, comme indiqué dans ces exemples: élément

.innerHTML=”<%= Encodeur.encodeForJS (Encodeur.encodeForHTML (Données non fiables))%>”;

élément.outerHTML=”<%= Encodeur.encodeForJS (Encodeur.encodeForHTML (Données non fiables))%>”;

document.write(“<%= Encodeur.encodeForJS(Encoder.encodeForHTML(untrustedData))%>”);

document.writeln(“<%=Encoder.encodeForJS(Encoder.encodeForHTML(untrustedData))%>”);

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.