Wie nutzen die HTTP-header XSS-Schwachstelle?
Sagen, dass eine Seite nur drucken Sie den Wert des HTTP "referer" - header mit kein entkommen. Also die Seite ist anfällig für einen XSS-Angriff, D. H. ein Angreifer kann das Handwerk eine GET-Anforderung mit einem referer-header mit so etwas wie <script>alert('xss');</script>
.
Aber wie können Sie tatsächlich nutzen diese, um ein Ziel anzugreifen? Wie kann der Angreifer das Ziel-Problem, das eine spezifische Anfrage mit, dass bestimmte header?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das klingt wie ein standard -reflektierte XSS-Angriff.
Im reflektierten XSS-Angriff, der Angreifer muss das Opfer zu besuchen, einige Website, die in irgendeiner Weise unter der Kontrolle des Angreifers steht. Auch wenn dies nur ein forum, wo ein Angreifer kann einen link posten, in der Hoffnung, jemand wird es Folgen.
Im Falle einer reflektierten XSS-Angriff mit der
referer
header, dann könnte der Angreifer leitet den Benutzer aus dem forum zu einer Seite, auf der Angreifer-domain.z.B.
Dieser Seite wiederum leitet auf die folgende Ziel-Seite in einer Weise, die bewahrt
referer
.Weil es zeigt die
referer
header auf dieser Seite ohne die richtige Flucht,http://evil.example.com/?<script>alert(123)>
bekommt die Ausgabe innerhalb der HTML-Quelle, die Ausführung der Warnung. Hinweis: dies funktioniert im Internet Explorer nur.Andere Browser werden automatisch codieren der URL-rendering
statt, das ist sicher.
Ich kann mir denken, ein paar verschiedene Attacken, vielleicht gibt es mehr, die dann andere hoffentlich hinzufügen. 🙂
Wenn Ihr XSS ist nur ein paar header-Wert spiegelt sich in der Antwort nicht, ich würde sagen, das ist ein geringeres Risiko im Vergleich zu gespeichert. Möglicherweise gibt es Faktoren zu berücksichtigen, aber. Zum Beispiel, wenn es einen header, der dem browser Hinzugefügt und kann im browser (wie der user-agent) kann ein Angreifer Zugriff auf einen client-computer, ändern Sie den user-agent, und lassen Sie dann die ein normaler Benutzer verwenden Sie die website, jetzt mit dem Angreifer javascript injiziert. Ein weiteres Beispiel, das mir einfällt, ist eine Webseite, die anzeigen-url, die umgeleitet, die Sie dort (referer) - in diesem Fall der Angreifer muss nur einen link auf die betroffene Anwendung aus seine sorgfältig gestaltete url. Dies sind die Art von edge cases though.
Wenn es gespeichert ist, das ist einfacher. Betrachten Sie eine Anwendung, die meldet den Benutzer-Zugang mit allen request-Header, und nehmen wir an, es ist eine interne Anwendung für admins, die Sie verwenden, um zu überprüfen logs. Wenn diese log-viewer-Anwendung ist web-basiert und verletzlich, beliebigen javascript-Code von beliebigen Anfrage-header werden könnte ausführen im admin-Kontext. Natürlich ist dies nur ein Beispiel, es muss nicht blind sein, natürlich.
Cache poisoning kann auch helfen, die Ausnutzung einer header XSS.
Andere Sache, die ich denken kann, ist, browser-plugins. Flash ist weniger verbreitet jetzt (zum Glück), aber mit verschiedenen Versionen von Flash konnten Sie verschiedene request-Header auf Ihre Anfragen. Was genau Sie können und können nicht eingestellt ist ein Durcheinander und sehr verwirrend ist, über Flash-plugin-Versionen.
Also es gibt mehrere Angriffe, und es ist notwendig, zu behandeln, alle Header wie user-input und encode Sie entsprechend.
Ausnutzung von xss an der referrer-header, ist fast wie bei einem traditionellen reflektierte xss, Nur einen zusätzlichen Punkt zu machen, ist die "Angreifer website leitet zum Opfer website und damit referrer-header mit den erforderlichen javascript angehängt werden, um die Opfer Homepage anfordern".
Hier Ein ganz wesentlicher Punkt, der diskutiert werden muss ist, Warum nur mit DH man kann diese Sicherheitsanfälligkeit ausnutzen, warum nicht mit anderen Browsern?
Traditionelle Antwort auf diese Frage ist: "Chrome und firefox automatisch codiert URL-Parameter und damit XSS ist nicht möglich.." Aber die interessante Sache hier ist, wenn wir haben n Anzahl der bypässe für traditionelle xss umgeht. warum können wir nicht haben, umgeht für dieses Szenario.
Ja.. können Wir umgehen mit folgenden Nutzlast, die gleiche Weise zu umgehen, HTML-Validierung in der traditionellen Nutzlast.
http://evil.example.com/?alert(1)//cctixn1f .
Hier die Antwort könnte so etwas wie dieses:
Den link auf der
bezogen
Seite scheint falsch oder veraltet.
Antwort Ende
Wenn Opfer Klicks auf die verweisenden Seite, alert wird generiert..
Bottomline: Nicht nur IE, XSS möglich sein kann, auch in Mozilla und Firefox, wenn der referrer als Teil von href-tag..