Cross Origin Resource Sharing : défauts de configurations, vulnérabilités et exploitations

Magazine
Marque
MISC
Numéro
99
Mois de parution
septembre 2018
Domaines


Résumé

La première partie de cet article parue dans le numéro précédent présentait la genèse et le fonctionnement des Cross Origin Resource Sharing (CORS). La seconde s’attache à décrire les cas fréquents de mauvaises configurations débouchant sur des vulnérabilités exploitables, puis détaille plusieurs d’entre elles et suggère quelques contrôles et recommandations à destination des pentesteurs et de leurs clients.


 

1. Conséquences du fonctionnement des CORS

L'implémentation de la SOP est laissée exclusivement aux bons soins de l'agent, c'est-à-dire à un nombre très restreint de programmes et d'équipes de développement. Ce qui n'est pas le cas des CORS dont la mise en oeuvre repose à la fois sur les agents, mais aussi sur les serveurs. Or il existe une variété pratiquement infinie de cas de figure côté serveur, et ce d'autant plus que contrairement à la SOP les CORS nécessitent une adaptation de leur fonctionnement au contexte, notamment du fait de l'impossibilité d'utiliser des jokers ou une liste d'origines dans l'en-tête Access-Control-Allow-Credentials.

Les CORS peuvent donc être implémentées à différents niveaux selon les choix de chaque entreprise : au sein d'un composant d'infrastructure (un WAF ou un proxy par exemple), mais aussi d'un serveur web, d'un serveur d'application, d'un framework ou d'une application serveur...

Comme nous avons pu le...

Cet article est réservé aux abonnés. Il vous reste 94% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Zéro SQLi malgré les développeurs

Magazine
Marque
MISC
Numéro
111
Mois de parution
septembre 2020
Domaines
Résumé

Nous proposons une méthode pour effectuer des requêtes SQL qui garantit l'invulnérabilité aux injections SQL, y compris lorsqu'elle est utilisée par un développeur pressé ou incompétent, contrairement aux requêtes paramétrées. Basée sur l'utilisation d'arbres de syntaxe abstraite, elle permet facilement de construire des requêtes dynamiques et est plus facile à mettre en œuvre qu'un ORM. Nous proposons une bibliothèque Java implémentant nos idées, mais la méthode peut s'appliquer à d'autres langages de programmation et d'autres types de requêtes.

Introduction à QBDI et ses bindings Python

Magazine
Marque
MISC
Numéro
109
Mois de parution
mai 2020
Domaines
Résumé

Le présent article traite de l'outil d'instrumentation dynamique QBDI. C'est un framework de DBI (Dynamic Binary Instrumentation), comparable à d'autres projets publics tels qu’Intel PIN, Valgrind ou encore DynamoRIO. Avant d'entrer dans le vif du sujet, quelques rappels peuvent s'avérer nécessaires…

Introduction au dossier : Python au service de la recherche et l’exploitation de vulnérabilités

Magazine
Marque
MISC
Numéro
109
Mois de parution
mai 2020
Domaines
Résumé

Quand on s’adonne aux plaisirs de la sécurité informatique, il est ce moment où doivent s’aligner les idées et la pratique, c’est-à-dire la production d’une preuve de concept. Et quand il faut écrire du code, le choix du langage s’impose forcément : d’un côté, il y a les contraintes fortes qui nous donnent des possibilités restreintes, et de l’autre il y a nos bas instincts qui prennent la solution qui produira le plus rapidement possible le résultat escompté.