web-dev-qa-db-fra.com

Pourquoi la persistance ne peut-elle pas être détectée par un pare-feu d'application Web?

Ceci [~ # ~] owasp [~ # ~ ~] Article mentionné que "Utilisation de la validation des données, seules les XSS réfléchies ne peuvent être détectées et évitées, persistantes XSS ne peuvent pas être détectées, des XSS basés sur DOM ne peuvent être limités degré si une partie de l'attaque est envoyée dans des paramètres de la demande. " Pourquoi est-ce tellement?

Je comprends une fois que le script malveillant est stocké dans l'application, maintenant toute demande d'obtention/poste ne ressemblera pas à des méchants, mais le script sera exécuté à la victime. Cependant, pour mener à bien un XSS persistant, un attaquant doit envoyer une requête à la recherche malveillante au serveur qui doit être détectée par la machine à main et doit donc être arrêtée pour être exécutée.

4
one

Je pense que le point n'est pas formulé idéalement, car un appareil artisanal peut en effet attraper des attaques XSS persistantes.

Mais il y a au moins deux problèmes:

  • les attaques persistantes XSS ne se produisent pas seulement via des demandes Web, mais cela pourrait se produire via une variété d'autres moyens, tels que le courrier électronique. La vulnérabilité n'est réellement introduite que lorsque des données sont lues à partir du stockage de données - par exemple, la DB - puis imprimée. Si vous n'écoutez pas sur la connexion entre DB et Server - ce qui n'est pas très courant autant que je sache - alors il ne peut pas détecter cela.
  • Le contexte manque. Un WAF peut examiner la demande entrante ainsi que la sortie générée. Ainsi, il peut indiquer dans quel contexte l'entrée de l'utilisateur est écho et si elle est prudente de le faire. Pour les XSS persistants, ce contexte manque, de sorte qu'il n'est pas clair si, par exemple, ');alert('1 est une entrée sûre ou non (ou la manière dont l'entrée est traitée et si elle est sécurisée via le codage).
4
tim