XMLHttpRequest et envoi de cookie

XSS exploitation

Le problème exposé dans ce sujet a été résolu.

Bonjour,

Dans le cadre d’un bug bounty, j’ai trouvé une reflected XSS sur un paramètre POST. Nommons le site vulnérable example.com pour plus de clarté. Le endpoint vulnérable est https://example.com/statistics.

Ce que j’aimerai faire via ma XSS, c’est effectuer une requête GET vers un second endpoint (qui nécessite d’être authentifié pour y accéder) : example.com/profil. Pour ce faire j’ai utilisé XMLHttpRequest. Voilà le petit bout de code.

var xhr = new XMLHttpRequest();

xhr.onreadystatechange = function() {
  if (xhr.readyState === 4) {
    console.log(xhr.response);
  }
}

xhr.open('GET', 'https://example.com/profil/', true);
xhr.withCredentials = true;
xhr.send(null);
console.log(xhr.reponse);

Donc sur mon serveur perso, j’héberge un bout de code javascript qui va automatiquement send une requête POST vers le endpoint vulnérable en envoyant ce code JS dans le paramètre vulnérable.

Je me suis créé un compte de test sur l’application, lorsque j’accède à mon serveur perso hébergeant cette page, je suis bien redirigé vers le site vulnérable est mon code est bien exécuté car en regardant l’onglet réseau de chromium, je vois bien une requête partir vers example.com/profil. Je suis à ce moment là bien authentifié. Cependant, la requête qui part vers /profile ne contient pas mon cookie de session.

Ma question est, comment faire pour envoyer automatiquement le cookie de session via XMLHttpRequest ? :)

J’ai repris à 0 à tête reposée et ça à fonctionné (tous les cookies sont envoyées). Et du coup j’ai pu exploiter ma XSS comme voulue. Et non, le serveur de renvoi pas de header Access-Control-Allow-Credentials (mais si j’ai bien compris ça c’est pour gérer les CORS, c’est à dire quand on fait des requêtes sur des domaines différents, ce qui n’est pas le cas ici).

En tout cas, problem solved ! :)

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte