Piratage éthique - Scripts intersites

Le cross-site scripting (XSS) est une attaque par injection de code qui permet à un attaquant d'exécuter du JavaScript malveillant dans le navigateur d'un autre utilisateur.

L'attaquant ne cible pas directement sa victime. Au lieu de cela, il exploite une vulnérabilité dans un site Web que la victime visite, afin que le site Web lui fournisse le JavaScript malveillant. Pour le navigateur de la victime, le JavaScript malveillant semble être une partie légitime du site Web, et le site Web a ainsi agi en tant que complice non intentionnel de l'attaquant. Ces attaques peuvent être menées en utilisant HTML, JavaScript, VBScript, ActiveX, Flash, mais le XSS le plus utilisé est le JavaScript malveillant.

Ces attaques peuvent également collecter des données sur le détournement de compte, la modification des paramètres utilisateur, le vol / empoisonnement de cookies ou la fausse publicité et créer des attaques DoS.

Exemple

Prenons un exemple pour comprendre comment cela fonctionne. Nous avons une page Web vulnérable que nous avons obtenue par lemetasploitablemachine. Nous allons maintenant tester le champ surligné en flèche rouge pour XSS.

Tout d'abord, nous créons un script d'alerte simple

<script>  
   alert(‘I am Vulnerable’)  
</script>

Il produira la sortie suivante -

Types d'attaques XSS

Les attaques XSS sont souvent divisées en trois types -

  • Persistent XSS, où la chaîne malveillante provient de la base de données du site Web.

  • Reflected XSS, où la chaîne malveillante provient de la demande de la victime.

  • DOM-based XSS, où la vulnérabilité se trouve dans le code côté client plutôt que dans le code côté serveur.

Généralement, les scripts intersites sont trouvés par vulnerability scanners pour que vous n'ayez pas à faire tout le travail manuel en y mettant un JavaScript comme

<script>  
   alert('XSS') 
</script>

Burp Suite et acunetix sont considérés comme les meilleurs scanners de vulnérabilité.

Conseil rapide

Pour éviter les attaques XSS, gardez à l'esprit les points suivants:

  • Vérifiez et validez tous les champs du formulaire comme les formulaires cachés, les en-têtes, les cookies, les chaînes de requête.

  • Mettez en œuvre une politique de sécurité rigoureuse. Définissez la limitation des caractères dans les champs de saisie.