Possibili vulnerabilità dal lasciare che gli utenti impostino manualmente i valori di sessione?

0

Ho visitato questo sito in cui sono stato in grado di impostare la lingua nella pagina principale. Quando ho fatto clic sul link della lingua, ho ricevuto un URL come site.com/index.php?lang=us e sono stato reindirizzato alla home page. Sulla barra di navigazione ho potuto vedere la bandiera USA, e quando ho esaminato il codice HTML ho visto il valore della sessione us nell'immagine src.

Quindi sono tornato alla pagina principale e ho impostato il valore lang su test , come site.com/index.php?lang=test , ho reindirizzato e ha davvero cambiato il valore della sessione. L'immagine sulla barra di navigazione non esisteva e non mostrava nulla.

Questo tipo di cose potrebbe influenzare il sito in qualche modo?

    
posta NBA YoungCode 09.04.2017 - 09:35
fonte

2 risposte

2

Il lang=us thingy non è una sessione. Le parti successive a ? in un URL sono quelle che vengono chiamate parametri di query. Come qualsiasi altra parte dell'URL, modificandole cambia la pagina che ottieni. Questo è normale e totalmente previsto. Non è strano che io sia in grado di "manipolare" il contenuto visualizzato da Google modificando cosa è dopo q in https://google.com?q=test .

Sembra che le cose impostate con il parametro di ricerca lang su vengano riportate nuovamente nell'attributo src dell'immagine, anche se il valore non è un codice lingua valido. È un po 'sciatto, ma non è un problema di sicurezza di per sé.

Tuttavia, se non esegui alcuna pulizia dei parametri della query prima di reinserirli nel tuo codice sorgente HTML, sarai vulnerabile a attacchi di cross site scripting (XSS) riflessi. Per sapere se il sito che hai visitato è vulnerabile, dovresti fare più test.

Per sapere cos'è effettivamente una sessione, controlla questo articolo . Per informazioni su come proteggerli, leggi OWASP .

    
risposta data 09.04.2017 - 18:51
fonte
2

Sessione è un termine con vari significati. Ma nel contesto della sicurezza delle applicazioni Web e in particolare del tag originale session-fixation indica una sessione associata all'utente, in cui questa associazione è univoca per un utente specifico (ovvero l'utente ha effettuato l'accesso) e diritti di accesso specifici , come l'accesso alla posta o all'account facebook o simili di questo utente. In questo contesto, gli attacchi che consentono il furto o l'assegnazione di una sessione sono problemi di sicurezza poiché consentono l'uso improprio dell'identità dell'utente, ovvero eseguono azioni con le autorizzazioni dell'utente.

Ma la lingua come nella tua domanda non è usata per identificare univocamente un utente specifico e quindi non è una sessione con il significato sopra descritto. E il furto o la falsificazione della lingua non comporta un uso improprio dell'identità dell'utente o delle autorizzazioni di accesso poiché la lingua non è univoca per questa specifica identità o permessi. Quindi non è un problema di sicurezza.

    
risposta data 09.04.2017 - 20:48
fonte

Leggi altre domande sui tag