chiarimento CORS

1

Ho bisogno di alcuni chiarimenti sui problemi che CORS (Cross-Origin Resource Sharing) può causare. Supponiamo che il sito A.COM abbia abilitato CORS, in particolare:

  • Access-Control-Allow-Origin può essere impostato su qualsiasi sito Web nella richiesta HTTP e viene copiato nella risposta
  • Access-Control-Allow-Credentials può essere impostato su true

Detto questo, supponiamo che nel seguente percorso A.COM: A.COM/user.php?id=USER_ID sia ospitato la password dell'utente (non realistico, ma andiamo avanti).

Il possibile scenario di attacco è:

  1. L'attaccante crea una pagina ospitata in B.COM dove c'è una funzione Javascript che, quando la pagina viene caricata, invia una richiesta HTTP (con l'intestazione di origine impostata) a A.COM/user.php?id=USER_ID ottiene il risultato e lo memorizza da qualche parte (magari con ulteriori richiesta http a un'altra pagina di attacco)
  2. L'attaccante deve forzare l'utente a caricare B.COM

Quindi, la mia domanda è: Per accedere a A.COM/user.php?id=USER_ID , un utente deve essere autenticato e disporre di un cookie set, l'utente malintenzionato deve essere sicuro che l'utente attaccato abbia un cookie valido per A.COM e che l'utente malintenzionato debba conoscere la struttura Web di A.COM? Se l'utente attaccato non ha effettuato l'accesso e non ha alcun set di cookie, l'attacco non funziona?

Grazie per i chiarimenti.

E.

    
posta Edge7 31.03.2018 - 20:09
fonte

2 risposte

1

If the attacked user is not logged in and does not have any cookie set, the attack does not work?

È vero.

Gli attacchi dovuti a politiche CORS mal configurate funzionano esattamente come hai descritto. Se l'utente non ha effettuato l'accesso, non c'è nulla che un aggressore guadagni.

and also the attacker needs to know the web structure of A.COM?

Sì, un utente malintenzionato deve sapere quali richieste possono costringere un utente a inviare. Potrebbero saperlo perché anch'essi hanno un account con diritti simili, perché hanno accesso temporaneo a un account o codice sorgente, perché le risposte alle richieste CORS restituiscono ulteriori collegamenti, oppure potrebbero provare a indovinare le richieste.

    
risposta data 31.03.2018 - 21:50
fonte
2

Sì, cross section request forgery ( link ) che la stessa politica di origine mitiga, funziona meglio su un utente che ha effettuato l'accesso. CORS scioglie questa attenuazione per alcuni siti Web affidabili.

    
risposta data 31.03.2018 - 21:05
fonte

Leggi altre domande sui tag