Ein Sicherheitsscan unseres IIS 10-Servers ergab, dass dieser die interne IP-Adresse des Servers über den Location
Header preisgibt, wenn eine Anfrage an einen Ordner wie gestellt wird https://example.org/Content
. Dies generiert Folgendes ( xxx
stellt die interne IP dar):
HTTP/1.1 301 Moved Permanently
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Content-Type: text/html; charset=UTF-8
Expires: -1
Location: https://xxx.xxx.xxx.xxx/Content/
....
Ein paar Fragen:
- Was ist die beste Vorgehensweise, um dieses Problem zu beheben?
- Wie führen wir eine GET HTTP/1.0-Anfrage außerhalb der Scan-Software durch, um dies zu simulieren und nach dem Fix zu testen?
Danke schön.
Aktualisieren:habe die URL-Rewrite-Regel vondieser Beitragaber es wird ein 500-Fehler ausgegeben.
Antwort1
Dieser Artikelzusammen mitDieses hierSkizzieren Sie den Schutz vor dieser Art von Angriffen (Client Access Server Information Disclosure-Sicherheitslücke) durch den Abbruch von Anfragen, denen der Host-Header fehlt.
Hier sind die Schritte, um das Problem zu beheben. Stellen Sie sicher, dass Sie dieURL-Rewrite-ModulEingerichtet,
Öffnen Sie IIS.
Wählen Sie Ihre Website aus.
Doppelklicken Sie auf „URL umschreiben“.
Klicken Sie im Aktionsbereich auf der rechten Seite auf Regel(n) hinzufügen.
Wählen Sie Eingehende Regeln > Anforderungsblockierung.
Geben Sie die folgenden Einstellungen für die Regel ein:
Blockieren Sie den Zugriff basierend auf: Host-Header
Blockieren Sie die Anfrage, die: Entspricht nicht dem Muster
Muster (Hostheader): .+ (lies: „Punkt Plus“, bedeutet „entspricht einem oder mehreren beliebigen Zeichen“)
Verwenden von: Reguläre Ausdrücke
So blockieren Sie: Anfrage abbrechen
Klicken Sie auf „OK“, um die Regel zu speichern.
Aktualisieren:Ein auf einem Windows-Server durchgeführter Sicherheitsscan ergab, dass die Sicherheitsanfälligkeit nach dieser Änderung nicht mehr bestand.