Sto facendo domanda per un programma attraverso il sito Web dell'organizzazione X. Ho effettuato l'accesso e sono rimasto sbalordito nel trovare un URL come questo:
https://www.whatever.org/application?session=80_CHARACTER_HASH
80 caratteri in [0-9a-f]
danno 16 80 = ~ 2.14 × 10 96 combinazioni.
Quindi ho cancellato l'hash e ricaricato la pagina, ed ecco, ho ottenuto una risposta 403 Unauthorized
. La modifica dell'hash causa anche un 403
. Infine, le modifiche all'hash su re-login, quindi penso che sia sicuro assumere che un hash è generato, memorizzato nel database per l'utente, e quindi aggiunto al querystring e controllato sul caricamento della pagina per trovare il record utente corretto nel database .
Tutte le pagine all'interno di pagine specifiche dell'utente richiedono che il parametro session
sia corretto. Non so se / quando il login scade, non sono rimasto inattivo per scoprirlo.
Per verificare che questo sia un problema, ho aperto una nuova finestra di navigazione in incognito, copiato / incollato l'URL e ho avuto accesso al mio account e alle informazioni sull'applicazione.
Alcuni problemi che posso pensare:
- Copia / incolla la tua sessione live attraverso la condivisione degli URL
- L'URL potrebbe essere bruto (anche se sarebbe piuttosto difficile imbattersi in un hash valido)
- L'URL è in vari registri (firewall, server, servizi di aggregazione di terze parti, ecc.)
Quali sono i rischi legati all'archiviazione di una sessione utente nei parametri di querystring?