Zaid: Lassen Sie uns
nun darüber sprechen, wie wir XSS-Schwachstellen verhindern können.
Diese Sicherheitslücken treten auf, weil
jedes Mal, wenn ein Benutzer etwas
in
ein Textfeld oder einen
Parameter eingibt, diese Eingabe im HTML-Code angezeigt wird.
Es wird also so behandelt, als wäre es Teil
der Seite, und wenn JavaScript darin enthalten
ist, wird der Code ausgeführt.
Um diesen Exploit zu verhindern,
versuchen Sie am
besten, die Verwendung nicht vertrauenswürdiger Eingaben zu minimieren.
Versuchen Sie also jedes
Mal, wenn ein Benutzer etwas eingibt oder etwas
von Parametern eingibt, dies zu minimieren.
Stellen Sie
außerdem sicher, dass Sie immer
alles maskieren, was angezeigt
oder in die HTML-Seite verwendet
wird, da XSS nicht nur an
Stellen eingefügt werden kann, an denen Dinge
auf der Seite angezeigt werden, sondern auch in
Parameter bestimmter Elemente von die HTML-Seite.
Mit Escape meine ich
also, jedes dieser Zeichen in
das umzuwandeln, was sie in HTML darstellen würden.
Sie können dies mit Skripten tun,
und Sie können dies mit Ihrem eigenen Skript tun.
Lassen Sie mich Ihnen nun zeigen, wie das passiert.
Jetzt bin ich hier auf meiner verwundbaren Webseite,
die wir
benutzt haben, und gehe zur Speicherseite.
Und natürlich können
Sie sehen, dass das XSS jedes Mal ausgeführt wird, wenn wir darauf klicken.
Lassen Sie uns dieses Element untersuchen.
Jetzt ist dieses Element, wo wir unsere Warnung eingefügt haben.
Und wenn wir mit
der rechten Maustaste klicken und das
Element überprüfen aufrufen, wird uns der HTML-Code dieser Seite oder
der HTML dieses bestimmten Elements hier hervorgehoben
angezeigt.
Also werde ich das größer machen.
Und wenn wir uns das hier genau ansehen, werden Sie sehen,
dass wir den Namen haben, und
das ist Zaid.
Und dann die andere Eingabe, die die Nachricht ist, es ist
ein Skript, und
das Skript, was das Skript
tut, macht eine Warnübung.
Es ist also genau das, was wir in den
Kommentar eingefügt haben.
Jedes Mal, wenn wir auf
dieser Seite waren, wird dieser Codeabschnitt ausgeführt. Wir müssen
also jedes
Mal sicherstellen, dass ein Benutzer etwas eingibt
und dass etwas auf einer Seite angezeigt
wird oder irgendwo verwendet wird in den Elementen.
Also auch die ID hier
oder sogar das H, die ID ist nur zB
ein Parameter des div,
sie wird nicht angezeigt, man sieht diese
ID nie, aber diese kann injizierbar sein, kann auch injiziert werden.
Hacker können also tatsächlich versuchen, Dinge in die Parameter
zu injizieren, sie können versuchen, Dinge in die
Bildattribute zu injizieren, zum Beispiel, sie können
ein Bild erstellen
und Dinge in die Quelle oder
in die URL einfügen.
Dies ist hier also nur ein Beispiel.
Und jedes Mal, wenn Benutzereingaben irgendwo auf der Seite verwendet werden.
Selbst wenn Sie sie nicht sehen, wenn
Sie sie normalerweise nicht sehen, müssen Sie sicherstellen, dass
Sie diese Eingaben umgehen und sicherstellen,
dass dies
der Fall ist keinen Code enthalten,
und wenn er
Code enthält, der in ein Äquivalent konvertiert wird, wird
der Code nicht ausgeführt.
Es wird also in sein HTTP-Äquivalent konvertiert,
sodass Sie dies tatsächlich in der Nachricht sehen,
sobald Sie dies umgehen.
Sie sehen die Nachricht also als Skriptwarnung
XSS, sie wird jedoch nie ausgeführt.
Dieses Skript wird bei der Ausführung niemals
auf der Zielperson ausgeführt.
Jetzt als Benutzer, um zu
verhindern, dass Sie in einen XSS-Angriff missbraucht werden.
Nun wird die URL, die zu Ihnen
kommt, wahrscheinlich wie eine URL einer vertrauenswürdigen Website aussehen. Nehmen wir
zum Beispiel
an, Sie arbeiten in einem Unternehmen
und es gab ein XSS in Ihrem Unternehmen,
und Sie loggen sich in Ihr Unternehmen
ein und der Code wird ausgeführt auf
dich, dann kannst du selbst nicht viel tun.
Aber Sie müssen vorsichtig sein.
Bei BeEF sahen wir also, um
die Schwachstellen auszunutzen, wir zeigten beispielsweise
ein Fake-Update.
Stellen Sie also sicher, dass Sie, wenn Sie immer eine
Nachricht erhalten, dass
es ein Update gibt, auch tatsächlich auf die Website
gehen, die diese Anwendung bereitstellt.
Wenn Firefox also
gesagt hat, dass es ein Update gibt, gehen Sie auf die Website von Firefox und
sehen Sie nach, ob es tatsächlich ein Update gibt.
Und wenn ja, laden Sie es von dieser Website herunter,
laden Sie es nicht von der Benachrichtigung herunter, die Sie erhalten haben.
Stellen Sie außerdem sicher, dass Sie es von einer HTTPS-Website herunterladen.
Und sobald Sie es heruntergeladen haben, können Sie es
inspizieren und überprüfen, wie
wir es zuvor gesehen haben,
um sicherzustellen, dass es keine Hintertüren oder ähnliches enthält.
Sie können auch die md5sum überprüfen, um
sicherzustellen, dass die Datei
beim Herunterladen nicht manipuliert wurde.
Das Gleiche, als wir die gefälschte Facebook-Anmeldung
gemacht haben, wenn Sie bei BeEF sind. Sie können also tun, wenn
Sie wissen, dass
Sie abgemeldet wurden, melden Sie sich bitte erneut
an und ignorieren Sie dies.
Gehe zu Facebook. com, stellen Sie sicher, dass es über HTTPS läuft,
und melden Sie sich dann bei Facebook an.
Seien Sie also immer vorsichtig mit Benachrichtigungen, die Ihnen mitteilen, dass
Sie etwas tun müssen.
Seien Sie immer vorsichtig
und vertrauen Sie ihnen nie.