La méthode d'utilisation de trois types CORS misconfigured (tours par minute)

Même origine politique (SOP) pour limiter le partage d'informations entre les applications et ne permet le partage dans le domaine hébergeant l'application. Cela empêche efficacement les fuites du système d'information confidentielle. En même temps, il apporte aussi des problèmes supplémentaires. Avec les micro-services de plus en plus et les applications Web utilisent, pour des raisons pratiques, ont souvent besoin de transmettre des informations d'un sous-domaine à un autre sous-domaine, ou passé (par exemple, le jeton d'accès et un identifiant de session entre les domaines passer à une autre application).

Afin de permettre la communication inter-domaines, les développeurs doivent utiliser différentes techniques pour SOP by-pass et de transmettre des informations sensibles qui est maintenant devenu un problème de sécurité épineux. Par conséquent, afin sans statut affectant la sécurité des applications de partage de l'information, la mise en place du partage des ressources inter-origine (CORS) en HTML5. Mais le problème a surgi, beaucoup de gens mettent en uvre tout simplement afin de faciliter l'utilisation de la configuration par défaut, ou en raison de ce manque de compréhension causée par une mauvaise configuration.

Par conséquent, à titre d'analyste de la sécurité / ingénieur pour apprendre à utiliser CORS tête très important mal configurés. Cela permettra également vous aider à mieux être remédié à la catastrophe.

Qu'est-ce que les CORS?

CORS est une norme W3C, signifie "Cross-Origin Resource Sharing" (Partage des ressources Cross-origin). Il permet au navigateur de traverser la source (nom de domaine + port + protocole) serveur, a publié une demande de XMLHttpRequest, qui surmonte les limitations d'AJAX que l'utilisation homologue.

CORS ont besoin pour prendre en charge le navigateur et le serveur. Il est le processus de communication, le navigateur se fait automatiquement, sans intervention de l'utilisateur. Pour les développeurs, il n'y a pas de communication CORS AJAX différence communiquer avec homologue, exactement comme il était. Une fois que le navigateur AJAX demande croisée origine, il ajoutera automatiquement des informations d'en-tête supplémentaires, et parfois plus d'une demande de temps supplémentaire, mais les utilisateurs n'ont pas de sentiments.

Par conséquent, la communication est la clé pour atteindre serveur CORS. CORS que le serveur implémente l'interface, vous pouvez communiquer à travers la source.

L'en-tête clés CORS

Il y a beaucoup de têtes HTTP associés à CORS, mais les trois la plupart des têtes de réponse importants pour la sécurité:

Contrôle d'accès-allow-origine: spécifier quels domaines peuvent accéder à des ressources de domaine. Par exemple, si vous voulez accéder aux ressources provider.com requester.com, alors les développeurs peuvent utiliser cet en-tête pour accorder l'accès aux ressources provider.com requester.com en toute sécurité.

Contrôle d'accès-allow-vérification des pouvoirs: Indiquez si votre navigateur envoie une demande à l'aide du cookie. Permettre aux informations d'identification uniquement lorsque l'en-tête est défini sur true, il sera envoyé Cookie.

Contrôle d'accès-allow-Méthodes: Indique qui peut utiliser la méthode de requête HTTP (GET, PUT, suppression, etc.) d'accès aux ressources. Lorsque cet en-tête permet aux développeurs d'accéder à la demande aux ressources requester.com provider.com, en précisant la méthode est efficace pour renforcer la sécurité.

Trois scénarios d'attaque

CORS tête à l'aide des caractères génériques mal configurés (*)

La plupart erreur commune est une erreur de configuration CORS d'utiliser des jokers comme un (*), autoriser des ressources de demandes de domaine. Cela est généralement réglé sur la valeur par défaut, ce qui signifie que tout domaine peut accéder aux ressources sur ce site. Par exemple:

GET /api/userinfo.php Hôte: www.victim.com Origine: www.victim.com

Lorsque vous envoyez la demande ci-dessus, vous obtiendrez une réponse avec Access-Control-Allow-Origin ensemble d'en-tête. Voir les codes de réponse suivants.

HTTP / 1.0200 OK Contrôle d'accès-allow-origine: * Access-Control-Allow-vérification des pouvoirs: true

Dans cet exemple, l'en-tête configuré générique (*). Cela signifie que tout domaine peut accéder aux ressources.

Lors du test de l'application Web de nos clients, nous avons remarqué la mauvaise configuration. Nous pouvons l'utiliser pour obtenir des informations utilisateur, telles que le nom, l'ID utilisateur, ID e-mail, et être en mesure d'envoyer ces informations à un serveur externe. Dans la figure ci-dessous, nous modifierons le domaine d'origine DEMANDE victime du domaine attaquant.

Ce qui suit est la réponse que nous avons reçue, ce qui signifie que le domaine de la victime permet d'accéder aux ressources de tous les sites. Testing.aaa.com notre site Web cas d'attaque.

En raison du site à l'information de la part de tout site, donc permettent d'utiliser plus de notre propre domaine pour tirer profit de celui-ci. Nous avons créé un domaine appelé https://testing.aaa.com, et à coordonner leur vulnérabilité code d'exploitation pour dérober des informations confidentielles de l'application des personnes vulnérables. Lorsque la victime ouvre https://testing.aaa.com dans un navigateur, il récupérer des informations sensibles envoyées au serveur d'un attaquant. Ce qui suit est l'information que nous pouvons recueillir, comme indiqué ci-dessous.

Le domaine de confiance générique comme origine

Une autre erreur commune est configuré pour permettre le partage d'informations avec la validation partielle des noms de domaine. Par exemple, les demandes suivantes:

GET /api/userinfo.php Hôte: provider.com Origine: requester.com

La réponse est la suivante:

HTTP / 1.0200 OK Contrôle d'accès-allow-origine: requester.com Access-Control-Allow-vérification des pouvoirs: true

Les développeurs considèrent que la configuration de CORS pour vérifier l'URL « en-tête Origine », seul domaine whitelist « requester.com ». Maintenant, lorsque l'attaquant lance la requête suivante:

GET /api/userinfo.php Hôte: example.com Connection: close Origine: attackerrequester.com

La réponse du serveur:

HTTP / 1.0200 OK Contrôle d'accès-allow-origine: attackerrequester.com Access-Control-Allow-vérification des pouvoirs: true

Cela se produit parce que la configuration arrière-plan peut être erroné, par exemple:

if ($ _SERVER == '* requester.com') { // données d'accès else {// accès non autorisé} }

Nous avons rencontré ce problème dans l'application d'un client. domaine hôte « provider.com » toutes les sources de nom d'hôte de confiance « requester.com » se terminant, comme « attackerrequester.com ». , Nous dirigerons donc Tampered origine attackerrequester.com et poursuivre l'exécution de la demande.

Dans ce qui suit la réponse, en réponse à la même origine en-tête Access-contrôle allow-origine, cela signifie que la ressource partagée pour permettre la fin des domaines requester.com domaine provider.com.

Par conséquent, nous pouvons créer un nouveau nom de domaine par le nom de domaine composition liste blanche. Ensuite, le site malveillant en utilisant les codes imbriquer de manière à obtenir des informations sensibles sur les sites des victimes.

CORS est obtenue avec l'utilisation de XSS

Les développeurs utilisés contre une utilisation mécanisme de défense de CORS, est souvent l'accès demandé au domaine de l'information whitelist. Mais ce n'est pas tout à fait sûr, tant qu'un sous-domaine d'un domaine whitelist vulnérable à d'autres attaques (par exemple XSS), vous pouvez également utiliser CORS.

look Let un exemple, le code suivant permettra l'allocation des ressources subdomain accès provider.com de requester.com de.

if ($ _SERVER == '* .requester.com') { // données d'accès else {// accès non autorisé} }

On suppose que l'utilisateur peut accéder à la place sub.requester.com requester.com et sub.requster.com vulnérables aux attaques XSS. Ensuite, l'utilisateur peut utiliser XSS utiliser provider.com.

Nous avons organisé deux applications sur le même domaine. CORS applications hébergées sur testingcors.com, une autre application est hébergé sur pavan.testingcors.com, l'application est vulnérable aux attaques XSS.

L'utilisation de ce sous-domaines vulnérables XSS, nous pouvons obtenir des informations sensibles à partir testingcors.com. Nous injectons la charge utile javascript malveillant dans le paramètre « Nom ». Après le chargement de la page, le script sera exécuté, et d'obtenir des informations sensibles testingcors.com en.

résumé

CORS est OWASP TOP 10 des failles de sécurité. Dans le processus d'échange d'informations entre les sites, les gens ont tendance à ignorer l'importance de la configuration CORS. En tant que développeur ou expert en sécurité pour comprendre cette vulnérabilité et comment l'exploiter est essentiel.

* Référence Source: we45, FB Xiao Bian secist compilé, reproduit à partir FreeBuf.COM

Aucun sens de la malice SDK brosse la publicité Baidu, des milliers d'implants APP affectent des millions d'utilisateurs
Précédent
Oolong fait Saul passe Aube Moubarak à plusieurs reprises dépanneuse, Atletico Madrid 1-0 Valladolid
Prochain
Goetze rouge Royce a cassé Witsel Wolfe, neuf Dott 2-4 Schalke
La menace de TA505 organisation juridique à l'aide des outils de gestion à distance pour les attaques de réseau
Media Plus: ville chinoise était destiné à régner la loi dans le monde
Note de l'éditeur? compte téléphone cellulaire des femmes de l'argent, ou être un menteur triché 3000 yuans
Une autre façon de lutter contre la « Black Radio »: 360 Radio illégale écoute plate-forme Regarder la source publicitaire
Tant de pays « Made in China » imprimé sur la facture! « Sur le chemin » combien?
Point a emporter, comment obtenir ce sentiment de la date d'aveugle
Contrôle et enregistrement! La déflagration du Hubei Xiangyang Street, haut route tout le chemin à blesser les gens
Accueil tard voleur de nuit, voleur homme mort mis en accusation 810000 demandes
2019 JBL Nouvelle promotion de la technologie d'échange (Station Shenzhen) tenue avec succès
Préscolaire trois prochains aussi tiré classe même-filles du ventilateur principal: l'expulsion a été suspendue
Smart ère de la maison, l'application intelligente de ces modules pour faciliter la vie