Concepts de base et idées de base des bases de XSS pour les attaques et la défense de sécurité Web

1 Introduction et comparaison

Les attaques XSS peuvent être divisées en trois types

  1. Type réfléchissant: unique, diffusé par courrier, besoin de passer par le serveur
  2. Type de dom (modèle d'objet de document): Une fois, pas besoin de passer par le serveur (aucun message envoyé)
  3. Type de stockage: persistant, apparaît généralement dans le babillard électronique, généralement dans un lien de confiance (site Web de forum familier)

Le type de réflexion et le type de stockage doivent envoyer des informations vers l'extérieur, puis les renvoyer via le serveur, tandis que le type DOM est analysé et exécuté par le navigateur local.

La méthode d'inspection la plus simple pour faire la distinction entre le type réfléchissant et le type DOM est la "capture Burp". Si Burp capture les données, c'est le type réfléchissant, et s'il ne peut pas capturer les données, c'est le type DOM. (Enseigné par Maître Tong Tong lors de l'interview

Le type DOM et le type de réflexion sont généralement utilisés par l'attaquant pour construire l'URL, et le type de stockage est le point d'entrée pour la construction du site Web de test de charge utile.

  • Type DOM: data => client
  • Type réfléchissant: data => serveur => client
  • Type de stockage: data => serveur => base de données => client

2 Défense contre XSS

La réparation XSS est divisée en deux parties: l'entrée et la sortie. Grâce au filtrage, le code malveillant saisi est intercepté vers l'extérieur (similaire au contrôle de sécurité d'un avion). Vous devez également faire attention à la sortie, sinon le code malveillant entré dans le passé peut également provoquer XSS.

  1. Filtrez les caractères non autorisés tels que ', ", <,>, sur *.
  2. La sortie des données sur la page nécessite un codage d'entité HTML et un codage Javascript.

3 Idée de base

  • L'existence de XSS doit être accompagnée des deux concepts d'entrée et de sortie (le filtrage d'entrée et le codage de sortie sont donc nécessaires pour la défense en défense). Il n'est pas pratique de filtrer lors de la sortie. Si 3 <5 est écrit dans l'article, il ne sera que de 3 à 5 après avoir été filtré. Par conséquent, les défenses de codage sont souvent utilisées en sortie au lieu du filtrage.
  • L'injection XSS et SQL sont similaires. Le texte est exécuté sous forme de code. La différence est que le code pour XSS est exécuté côté client et le code d'injection SQL est exécuté côté serveur.

Je suppose que tu aimes

Origine blog.csdn.net/qq_43085611/article/details/113246985
conseillé
Classement