Vulnerabilità in ASP.NET
Microsoft sta indagando per una vulnerabilità in ASP.NET che permette l'accesso alle directory protette dei server
di Marco Giuliani pubblicata il 08 Ottobre 2004, alle 09:01 nel canale SicurezzaMicrosoft
Microsoft ha lanciato l'allarme per una presunta vulnerabilità individuata in Microsoft ASP.NET.
Il bug, che consiste in un errato controllo delle autorizzazioni presente nel modulo UrlAuthorizationModule, permette ad un attacker di poter navigare all'interno delle directory con accesso ristretto senza le necessarie credenziali.
La vulnerabilità affligge tutte le versioni di ASP.NET che girano su Microsoft Windows 2000, Windows 2000 Server, Windows XP Professional e Windows Server 2003.
Per sfruttare la vulnerabilità bisogna semplicemente sostituire il carattere '/' con '\' o '%5C' all'interno dell'URL, così da bypassare la richiesta di password.
In attesa di fix ufficiali è possibile sistemare il bug in vari modi:
Il bug, che consiste in un errato controllo delle autorizzazioni presente nel modulo UrlAuthorizationModule, permette ad un attacker di poter navigare all'interno delle directory con accesso ristretto senza le necessarie credenziali.
La vulnerabilità affligge tutte le versioni di ASP.NET che girano su Microsoft Windows 2000, Windows 2000 Server, Windows XP Professional e Windows Server 2003.
Per sfruttare la vulnerabilità bisogna semplicemente sostituire il carattere '/' con '\' o '%5C' all'interno dell'URL, così da bypassare la richiesta di password.
In attesa di fix ufficiali è possibile sistemare il bug in vari modi:
- applicare i suggerimenti pubblicati da Microsoft nell'articolo KB887459
- installare il programma URLScan, che filtra gli indirizzi web
- modificare il file global.asax con il seguente codice:
HttpContext context = ((HttpApplication)sender). Context ;
if (context ! = null)
{
HttpRequest request = context. Request ;
string path = request.Path.ToUpper () ;
if (path. IndexOf("\ \") > -1 || path.IndexOf("%5c") > -1)
{
path = path. Replace("\ \", "/").Replace("%5C", "/") ;
context. RewritePath (path) ;
}
}
68 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - infoChe cosaaa??
Aiuto, mega baco! Questa va corretta al volo, se no sai quanti begli accessi non autorizzati!!!... GULP!!!ma pensa te...
"Per sfruttare la vulnerabilità bisogna semplicemente sostituire il carattere '/' con '\' o '%5C' all'interno dell'URL, così da bypassare la richiesta di password."Ma come c@##o è possibile?? Questa non mi sembra un baco da poco.. ma alla M$ sono diventati scemi?
Ma pork
Ieri che ti avevo detto? dovresti vedermi, sto ridendo come un pazzo
BC30188: Declaration expected.
Allora ho messo questo:
Sub Application_BeginRequest(Sender as Object, E as EventArgs)
If (Request.Path.IndexOf(chr(92)) >= 0 OR _
System.IO.Path.GetFullPath(Request.PhysicalPath) <> Request.PhysicalPath) then
Throw New HttpException(404, "Not Found"
End If
End Sub
Ieri che ti avevo detto? dovresti vedermi, sto ridendo come un pazzo
Che mi avevi detto?
Non ricordo e se c'ero
Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".