Perché non vi è alcun riferimento quando si punta a una pagina sicura?

2

Partecipo a un programma di bug bug e cerco di trovare una vulnerabilità grave da esporre.

In primo luogo, ho scoperto che la società non stava utilizzando CSRF token , invece di utilizzare Referer per garantire che la richiesta venga effettuata da https://example.com .

Referer tende ad essere meno sicuro di CSRF token , ecco perché ho iniziato a cercare Vulnerabilità legata all'URL . Dopo alcune ore di ricerca, ne ho finalmente trovato uno. Un input come https://m.example.com/?app=desktop&location=/admin?doSomeAction=stuff avrà come risultato la seguente intestazione Location: Location:https://example.com/admin?doSomeAction=stuff .

Leggendo Wikipedia su Referer e https , ho notato la seguente riga:

If a website is accessed from a HTTP Secure (HTTPS) connection and a link points to anywhere except another secure location, then the referrer field is not sent.

Mentre mi sto reindirizzando verso una posizione sicura, perché l'intestazione Referer non viene inviata quando accedi a Location:https://example.com/admin?doSomeAction=stuff

Modifica: il browser non cambia Referer in Location reindirizzamento. Mi sono confuso a causa di questo post: link . Ora mi chiedo, se invece di Location , la pagina inviasse contenuti con <script>document.location="https://example.com/example.com/admin?doSomeAction=stuff"</script> cambierebbe il referer?

    
posta Xavier59 02.09.2016 - 14:03
fonte

1 risposta

2

In realtà il referer HTTP non è un'intestazione obbligatoria. Il cliente può decidere di lasciarlo in bianco o di inviare informazioni false. Ho notato che Google Chrome non invia sempre il referer e quando si tratta di HTTP - > Link HTTPS, non viene inviato nulla per le prime richieste. La mia ipotesi migliore sarebbe quella di dire che il browser si assicura che tutte le richieste siano state richieste almeno una volta su HTTPS, prima che il referente venga aggiunto. Altre opzioni da questo post:

Sarà / potrebbe essere vuoto quando l'utente finale:

  • ha inserito l'URL del sito nella stessa barra degli indirizzi del browser.
  • visitato il sito da un segnalibro gestito dal browser.
  • ha visitato il sito come prima pagina nella finestra / scheda.
  • passato da un URL https a un URL http.
  • passato da un URL https a un URL https diverso. (Alcuni browser)
  • ha installato un software di sicurezza (antivirus / firewall / etc) che rimuove il referrer da tutte le richieste.
  • è dietro un proxy che rimuove il referrer da tutte le richieste.
  • ha visitato il sito in modo programmatico (come curl ) senza impostare l'intestazione del referrer (searchbots!).

Aggiornamento sul commento

Sì, mi aspetto che cambi. Per un browser non importa chi ha attivato la posizione, tu, uno script o un plugin, ma poi di nuovo, leggi quanto sopra.

    
risposta data 02.09.2016 - 14:44
fonte

Leggi altre domande sui tag