2012-06-03 18 views
6

Sto utilizzando l'autenticazione modulo è ASP.NET. Sto conducendo test penetranti per un progetto scolastico. Sto usando LENS -ASP.NET STRUMENTO DI PROVA PENETRANTE. Nei risultati mi ha detto che la mia applicazione potrebbe essere vulnerabile alla fissazione della sessione. Qualcuno sa come questo può essere mitigato contro?Fissazione sessione - Autenticazione modulo

Grazie

risposta

11

Una fissazione sessione è un attacco in cui una persona si fissa identificatore di sessione di un'altra persona (SID).

L'attacco inizia con l'attaccante visitando il sito web e stabilire una sessione valida, quando l'applicazione offre un cookie contenente l'ID di sessione, l'attaccante ha fissato, o bloccato in un noto buona sessione. L'utente malintenzionato ingannerà quindi la vittima nell'uso di questo ID sessione. A questo punto l'attaccante e la vittima condividono lo stesso ID di sessione. Ora ogni volta che le informazioni memorizzate in questa sessione fissata vengono utilizzate per prendere decisioni per la vittima o visualizzare informazioni che solo la vittima dovrebbe vedere, possono essere potenzialmente usate e visualizzate dall'attaccante! È possibile read more here.

L'unica soluzione alternativa sarebbe ASP.NET per rilasciare un NUOVO ID di sessione dopo qualsiasi autenticazione riuscita, In questo modo, una volta che la vittima effettua l'accesso, l'utente malintenzionato non avrà accesso alla sessione. Un altro punto da ricordare:. MAI consegnare sessione fino l'utente accede in

Ricorda, in ASP.net Session.Abandon() non è sufficiente per questo compito, non rimuove il cookie ID di sessione dal browser dell'utente, in modo che qualsiasi nuova la richiesta alla stessa applicazione, dopo che la sessione è stata abbandonata, utilizzerà lo stesso ID di sessione e una nuova istanza di stato di sessione! As Microsoft states here. È necessario abbandonare la sessione di e chiaro ID di sessione di cookie:

Session.Abandon(); 
Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", "")); 

E 'anche una buona pratica per cambiare il nome del cookie di autenticazione form, nel file web.config:

<authentication mode="Forms"> 
    <forms name=".CookieName" loginUrl="LoginPage.aspx" /> 
</authentication> 

Ecco un buon articolo su Session Attacks and ASP.NET e come risolverlo.

Problemi correlati