Service Hacktion - Notes attachées au balado S01E07 - Pourquoi il ne faut pas utiliser alert(1) pour les XSS

Saison Épisode
1 7

Notes#

Avantages alert() :

  • Facilement visible

Pas le 1 :

  • Ça ne sert à rien
  • On ne sait pas d'où ça vient, si on a un formulaire avec 10 champs et qu'on a 5 alertes avec 1 qui s'affichent, quels étaient les champs vulnérables ?
    • Plutôt utiliser le nom de champ d'origine et la page
    • Une chaine de caractère unique pour facilement chercher
  • Dans le cas d'un domaine bac à sable, on ne sait pas de quel domaine provient la XSS. Iframe bac à sable ?
    • Plutôt utiliser document.domain ou window.origin
    • Hors périmètre (prime aux bogues) ?
    • Pas d'impact (cookie, SOP) ?

Pas le alert() :

  • Quand la charge utile est réfléchie 89 fois, il va falloir cliquer 89 fois sur ok
  • Si la XSS est stockée et qu'on a pas les droits pour la supprimer ?
  • Si on est en env. de prod. et que les clients la voient ?
  • Souvent sur liste noire d'un WAF
  • Privilégier console.log() pour répondre à ces problématiques

La part d'ombre, déclenchement en aveugle ?

  • Formulaire de contact
  • Ticket de support
  • Interface d'administration
  • En-tête Referer ou User-Agent ➡️ Analyse de contenu
  • Réfléchie dans une autre application qui utilise la même BDD ou l'API ou application mobile
  • XSS Hunter Express, app. web, pas maintenu
  • bXSS, notifications (courriel, chats), peu maintenu
  • ezXSS, app. web + notifications, maintenu

Ressources :

Partager