Le nom d'utilisateur renseigné est donc présent en tant que valeur d'une variable Javascript. Je tente assez simplement de sortir de la valeur avec le " puis d'exécuter l'affichage de la modale. Le commentaire, à la fin de ma payload, va permettre de se débarrasser des caractères superflus provenant de la concaténation effectuée dans le code whatever";alert(1);// :
POST /xss3/ HTTP/1.1Host:localhost:9003User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8Content-Type:application/x-www-form-urlencodedContent-Length:55Origin:http://localhost:9003Connection:closeReferer:http://localhost:9003/xss3/name=whatever%22%3Balert%281%29%3B%2F%2F&submit=Envoyer
Analyse du code source
Le nom d'utilisateur renseigné est récupéré dans la variable $username. Cette variable est affichée grâce à la directive echo directement au sein d'un bloc Javascript en tant que valeur de la variable name :