Viewstate Scanner
Was ist der Viewstate Scanner?
Der ViewState ist ein in die ASP.NET-Plattform integrierter Mechanismus, um Elemente der Benutzeroberfläche und andere Daten in aufeinanderfolgenden Anforderungen zu speichern.
Die bestehenden Daten werden vom Server serialisiert und über ein ausgeblendetes Formularfeld übertragen. Wenn es an den Server zurückgeschickt wird, wird der ViewState-Parameter deserialisiert und die Daten werden abgerufen.
Beschreibung
Standardmäßig wird der serialisierte Wert vom Server signiert, um Manipulationen durch den Benutzer zu verhindern. Dieses Verhalten kann jedoch deaktiviert werden, indem die Page.EnableViewStateMac-Eigenschaft auf “false” festgelegt wird.
Wenn dies geschehen ist, kann ein Angreifer den Inhalt des ViewState ändern und veranlassen, dass beliebige Daten vom Server deserialisiert und verarbeitet werden. Wenn der ViewState Elemente enthält, die für die Verarbeitung der Anforderung durch den Server kritisch sind, kann dies zu einem Sicherheitsrisiko führen.
Lösung
Der Inhalt des deserialisierten ViewState sollte überprüft werden, um festzustellen, ob er kritische Elemente enthält, die zum Angriff auf die Anwendung manipuliert werden können.
Der Viewstate Scanner versucht VIEWSTATE-Parameter zu identifizieren und diese Parameter verschiedene Best Practices und Schutzmaßnahmen zu analysieren, z.B.:
- solche basierend auf ASP.NET 1.0 und 1.1.
- Keine VIEWSTATE-Signatur
- VIEWSTATE-Teilung
- VIEWSTATE mit E-Mail- oder IP-Mustern.
Anmerkung
Es gibt keinen guten Grund, das Standardverhalten von ASP.NET zu deaktivieren, in dem der ViewState signiert ist, um Manipulationen zu verhindern. Um sicherzustellen, dass dies der Fall ist, sollten Sie die Page.EnableViewStateMac-Eigenschaft auf allen Seiten festlegen, auf denen der ViewState derzeit nicht signiert ist.
Datenbanklink zur Schwachstelle
CWE OrganisationPortswiggerSie haben noch Fragen?