Sanfte Killer - Cross-Site-Script Attack



Immer wenn wir denken, an eine Zeit, Hacker, Hacker, wie dieses Porträt: ein Einzelgänger, trat ruhig anderer Leute Servern, zu zerstören oder zu stehlen, anderer Leute Geheimnisse neigen. Vielleicht wird er auf unserer Homepage zu ändern, werden betrügerische Ansprüche zu stehlen Kunden Kreditkartennummern und Passwörter. Darüber hinaus werden die Hacker-Angriff auf unsere Website Ihres Besuchs. Zur gleichen Zeit wurde unser Server seine Komplizin. Microsoft bezeichnet diesen Angriff als "Cross-Site-Script"-Attacken. Die meisten dieser Angriffe fanden in dynamisch generierten Web-Seite zur rechten Zeit, aber die Hacker's Ziel ist nicht auf Ihre Website, sondern besuchen Sie die Website des Kunden.

Beschreibung des Cross-Site-Script Angriff

In einem Buch mit dem Titel ADVISORY CA--2000-02 der Zeitschrift CERT uns gewarnt: Wenn der Server auf dem Client-Eingang ist nicht zuverlässig geprüft werden böswilligen Hackern geben Sie einige HTML-Code, wenn diese HTML SCRIPT Programmcode Eingang verwendet wird, sie können es verwenden, um Sabotageakte durchzuführen, wie die Einfügung einiger Offensive Bilder oder Töne, etc., aber auch mit dem Kunden rechten Seite stören.

Wir wissen, dass einige Freunde angeregt worden waren, eine Reihe von verdächtigen Websites frei, bekommen sie nur 10 bis 20 kleine Fenster, sind diese Fenster oft durch die Bildung des Scheiterns der JAVA oder avascript Schaltfläche Sicherheit begleitet, dies als die Mausefalle ist bekannt. Schließen Sie das Fenster ist vergebens, wenn wir ein Fenster schließen, wird ein weiteres Fenster öffnet sich ein paar 10. Dies geschieht häufig, wenn der Administrator nicht in der Hou Fasheng. Hacker verwenden Sie die Maus-Ereignis wird durch Cross-Site Angriffsmethoden SCRIPT Beispiel des Kunden.

SCRIPT-Tags und böswilligen Unfug sind nicht einfach, sie können sogar stiehlt Informationen und zerstört das System. Nicht eine kluge oder sogar smart Hacker sind in der Lage zu stören oder ändern Sie die Server mit dem SCRIPT Dateneingabe. Script-Code kann auch Angriff mit Client-Systemen, kann Schäden an der Festplatte. Und wissen Sie, wenn Sie die Server-Seite verwenden, wird Hackern Skript auch an einem sicheren Ort, wo Ihre Server ausgeführt wird, um! Wenn der Kunde einen Brief auf Ihrem Server identifiziert wird, das gleiche Vertrauen, dass sie schädliche Code SCRIPT. Auch dieser Code ist in der Form von SCRIPT oder OBJECT Server von Hackern.

Selbst mit einer Firewall (SSL) kann nicht verhindern, Cross-Site-Angriffe SCRIPT. Das liegt daran, wenn die Ausrüstung erzeugt schädliche Skript-Code auch SSL verwendet, die SSL-Server, die wir nicht identifizieren können den Code an die. Wir müssen mit dem Kunden zu tun vertrauenswürdigen Sites dann mit der Hand über Hacker es? Und die Existenz eines solchen Schadens, möglich machen Verlust von Ansehen Ihrer Website.

Erstens SCRIPT Cross-Site-Angriffe Beispiel:

Laut CERT's Informationen, dynamischen Input hat in der Regel diese Formen: URL-Parameter, Formular-Elemente, COOKISE und Datenanforderungen. Lassen Sie uns zu analysieren, die nur zwei Seiten der Website, ist die Website namens: MYNICESITE.COM. Erster Einsatz eines Formulars oder Cookie an den Benutzernamen zu erhalten:

% @ Language = VBScript%

% If Request.Cookies ("username") "" Then

Dim strRedirectUrl

strRedirectUrl = "page2.asp? userName ="

strRedirectUrl = strRedirectUrl & Response.Cookies ("username")

Response.Redirect (strRedirectUrl)

Else%

HTML

HEAD

TITLE MyNiceSite.com Home Page / TITLE

/ HEAD

BODY

H2 MyNiceSite.com / H2

form Method="post" action="page2.asp"

Geben Sie Ihren Benutzernamen MyNiceSite.com:

INPUT Type="text" name="userName"

INPUT Type="submit" name="submit" value="submit"

/ FORM

/ BODY

/ HTML

% End If%

Die zweite Seite liefert den Benutzernamen zu begrüßen:

% @ Language = VBScript%

% Dim strUserName

Wenn Request.QueryString ("username") "" Then

strUserName = Request.QueryString ("username")

Sonst

Response.Cookies ("username") = Request.Form ("username")

strUserName = Request.Form ("username")

End If%

HTML

HEAD / HEAD

BODY

h3 Align="center" Hallo: % = strUserName% / h3

/ BODY

/ HTML

Wenn Sie Text eingeben oft normal, alles ist normal. Wenn Sie den Script-Code: SCRIPT alert (''Hallo .''; / script eingeben, wird avascript Warnschild Pop-up:

Das nächste Mal besuchen Sie diese Warnhinweis wird die gleiche erscheinen; Dies liegt daran, den Scriptcode in die Zeit nach dem ersten Besuch war, um in einem Cookie zu bleiben. Dies ist ein einfaches Beispiel für Cross-Site-Angriffe.

Wenn Sie denken, dies ist ein besonderer Fall, können Sie auch wollen, sich anderweitig umzusehen online, in Person versuchen. Ich habe einige große Websites der Regierung, Bildungs-Websites und kommerziellen Websites getestet, von denen einige mehr tun als das, was die Situation dort, fand ich sogar eine Website benutze ich oft Kreditkarten sind tatsächlich am Eingang ohne Filterung, Denken Sie wirklich schrecklich.

Zweite, mit E-Mail an Cross-Site-Script Attack

Cross-Site-Script Angriff in der Listen-Server, Usenet-Server und Mail-Server eingesetzt sind besonders anfällig zu kommen. Das folgende ist ein Beispiel für MyNiceSite.com Website erklären. Da Sie grasen oft diese Seite, ändert sich sein Inhalt nicht put it down du liebst, so dass Sie unbewusst setzen den Browser in einen dynamischen Web-Inhalten ist immer das Vertrauen dieser Einstellung.

MyNiceSite.com Seiten ist stets durch den Verkauf von Abonnements per E-Mail-Adresse der E-Mails Briefe an Einkommen, die in der Tat eine sehr gute Idee zu erhalten. Also kaufte ich es in einem Postfach-Adresse. Und machte eine Menge von E-Mail an Sie. In dem Schreiben, sage ich Ihnen so bald wie möglich, um diese Seite zu besuchen und überprüfen Sie Ihren Account mit Hilfe der neuesten Situation. Um Ihnen eine bequeme, machte ich auch einen Link auf dieses Schreiben. Ich würde Link-URL, den Benutzernamen Parameter in der Script-Code zu lecken hat. Einige Kunden unwissentlich auf diesen Link klicken, das heißt, wenn auf meinem (im Bild), und ich habe auch profitieren:

Es ist diese Arbeit, wie wenn Sie auf diesen Link nach Link in der Script-Code klicken Sie werden verwendet, um Ihren Browser zu meinem Guide avascript Programm herunterladen und ausführen werden. Mein Skript überprüft, verwenden Sie IE-Browser, um fortzufahren, um die Kontrolle ActiceX particularlyNasty.dll herunterladen. Denn bevor Sie die Inhalte dieser Website, die immer sicher ist, so mein Skript-Codes und Active-Steuerelemente auf Ihrem Rechner frei laufen kann.

3, Activex Angriff Beschreibung

Bei der Erörterung der ActiveX, CERT und Microsoft keinen Hinweis auf Cross-Site-Script-Methode der Gefährdung durch. W3C In "Der Sicherheitsrat Frequently Asked Questions von ActiveX-Sicherheitslücken wurden auf eine genauere Beschreibung gemacht. Java-Applet über die Kontrolle des Systems ist streng begrenzt. So Entwicklung, wenn sie vorsieht, dass nur diejenigen, die keine Bedrohung für die Sicherheit des Systems darstellen durfte die Operation auszuführen.

Auf der anderen Seite ist ActiveX über das Funktionieren des Systems nicht streng begrenzt. Wenn man jedoch heruntergeladen wurde, können Sie die ausführbare Datei als tun, was sie dasselbe tun wollte. IE-Browser für diese Funktion ist auch mit gewissen Einschränkungen, wie unsicher für den verlinkten Seiten vorgenommen, in den Standardeinstellungen wird nicht zulassen, dass Sie zum Download oder Ihnen eine Warnung prompt. Ist auf der Grundlage der Entwicklung von ActiveX für Unternehmen wie VeriSign Inc., haben sie angesichts von ActiveX-Steuerelementen nummeriert. Wenn Sie nach dem Download Zeitsteuerung, IE-Browser wird Ihnen eine Warnung und zeigt den Grad der Schurke seine Glaubwürdigkeit. Von der Anwender entscheiden, ob diese Kontrolle zu glauben. Als die Sicherheit des Systems erhöht.

Allerdings, für diejenigen Nutzer, die nicht viel Erfahrung, waren sie oft unbewusst, auf die ursprünglichen Einstellungen geändert werden, um diese Kontrollen ermöglichen, ohne spezielle Aufforderung auf die heruntergeladene. Darüber hinaus ein Neuling, auch im Fall einer Aufforderung zum Download ohne Denken macht keine Marke, in denen die Kontrollen. In unseren Beispielen, weil Sie der Site vertrauen, Ändern der Browser-Einstellungen, so steuert ActiveX ohne spezielle Aufforderung zum Download, und unwissentlich auf Ihrer Maschine beginnt zu laufen .

4, 16 hex ActiveX Script Angriff codiert

Schlechte Absichten sollte zwischen dem Etikett und dem Skript zu unterscheiden ist sehr schwierig. Script kann auch in Form von 16 hex werden verstecken sich. Lassen Sie uns unter folgender E-mail diesem Beispiel sehen Sie bitte? Es ist in Form von 16 hex verschickt wird:

Es ist fast eine komplette Nachricht, die eine 16 hex gefälschten URL-Parametern: sender = mynicesite.com enthält. Wenn der Benutzer auf den Link klickt, der Browser des Nutzers werden die ersten genannten Fall direkt an die Verarbeitung der Pop-up-Warnung Fenster zu starten.

Teil II: Cross-Site-Script Attack Kriminalprävention

Erstens, wie Sie verhindern, dass Cross-Site-Server-Angriffe Script

Glücklicherweise ist die Verhinderung Cross-Site-Script-Technologie Angriff perfektionieren. Mehrere Möglichkeiten ergriffen werden, um diese Cross-Site-Script-Attacken zu verhindern werden können:

1. Am dynamisch generierten Seiten sind Zeichen codiert

2. Zu filtern und Begrenzung der Eingabe

3. Von HTML-und URL-Codierung verwenden

1. Am dynamisch generierten Seiten sind Zeichen codiert

Sie müssen dem ersten Gebrauch ist dynamisch Seiten auf die Zeichencodierung generiert, müssen Sie es tun, oder Hacker wird wahrscheinlich Ihre Zeichensatz ändern und einfach durch Ihre Linie der Verteidigung. Wenn Sie unsere Webseite ist auf Englisch Website, so dass wenn wir die Zeichencodierung in lateinische Buchstaben-ISO 8859-1 auf die Zeile wie folgt:

META Http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"

2. Filtering und beschränken alle Eingabedaten

Dies soll Cross-Site-Script Die zweite Methode des Angriffs, während der Anmeldung zu verhindern in. Lassen Sie sich nicht diese besonderen Zeichen eingegeben werden. Deshalb können wir hinzufügen avascript Verfahren onsubmit Weg, um diese Funktion zu erfüllen. In diesem Fall beschränken wir können nur 15 Zeichen eingeben. Dadurch wird verhindert, diese langen Skript-Eingang.

In Knowledge Base-Artikel QA252985 Dieses Buch bietet einen kurzen avascript Microsoft-Programm, um die Input-Daten filtern. Wir haben auch eingeführt aufgrund der besonderen Umstände des vorliegenden Codes für unser Beispiel, wie:

checkForm Funktion () (

document.forms [0]. userName.value = _

RemoveBad (document.forms [0]. UserName.value);

return true;

)

/ / MICROSOFT''s Code

Funktion RemoveBad (strTemp) (

strTemp = strTemp.replace (/ / /"/''/%/;/(/)/&/+/-/ g ,"");

Rückkehr strTemp;

)

Mit dieser Methode können Sie die Filter in das eingegebene Zeichen enthalten:

% [] (); & + - "''()

3. Von HTML-und URL-Codierung verwenden

Obwohl die Verwendung von Filtern und Beschränkungen bereits erwähnt, ist der Input-Methode zu einem sehr wichtigen Mittel der Verteidigung zu verwenden, aber es war meine Art, solche Angriffe per Mail oder machtlos. Ich legte URL-Parameter direkt auf die Nachricht. In Anbetracht dieser müssen wir eine robuste Sicherheit zu ergreifen. Wenn wir ASP, relativ gesehen, viel leichter zu lösen. Solange die Gesamtsumme für dynamisch generierte HTML-Seiten und URL-Codierung auf der Strecke. Der Fall für unser Beispiel, geben Sie die erste Seite der Umleitungs-URL haben wir die folgenden Änderungen:

strRedirectUrl = strRedirectUrl & _

Server.URLEncode (Response.Cookies ("username"))

Wir schlossen uns in der Umsetzung der Seite:

strUserName = Server.HTMLEncode (Request.QueryString ("username"))

Und

strUserName = Server.HTMLEncode (Request.Form ("username"))

Microsoft empfiehlt, für alle Ein-und Ausgabe von dynamischen Seiten sollten verschlüsselt werden. Selbst die Daten in die Datenbank und entfernen Sie die gleiche sollte wahr sein. Damit können Sie weitgehend vermeiden, Cross-Site-Script anzugreifen.

Zur Erreichung dieser in Page1.asp hinzugefügt werden sollte:

% @ Language = VBScript%

% If Request.Cookies ("username") "" Then

''Redirect erkennen, wenn das Cookie

Dim strRedirectUrl

strRedirectUrl = "page2.asp? userName ="

strRedirectUrl = strRedirectUrl & _

Server.URLEncode (Request.Cookies ("username"))

Response.Redirect (strRedirectUrl)

Else%

HTML

HEAD

META Http-equiv="Content-Type"content="text/html; charset=ISO-8859-1"

TITLE MyNiceSite.com Home Page / TITLE

/ HEAD

SCRIPT LANGUAGE="avascript"

! -

checkForm Funktion () (

document.forms [0]. userName.value =

RemoveBad (document.forms [0]. UserName.value);

return true;

)

Datei //*********************************************** *******

Datei / / Programmer: nicht original CODE - kommt von Microsoft

Datei / / Code Quelle: Microsoft Knowledge Base-Artikel Q25z985

Datei / / Beschreibung: Entfernt schlechte Zeichen.

Datei //*********************************************** *******

Funktion RemoveBad (strTemp) (

strTemp = strTemp.replace (/ / /"/''/%/;/(/)/&/+/-/ g, "");

Rückkehr strTemp;

)

Datei //--

/ SCRIPT

BODY

BR

H2 MyNiceSite.com / H2

BR

FORM Method="post"action="page2.asp" onsubmit="return checkForm();"

Geben Sie Ihren Benutzernamen MyNiceSite.com:

INPUT Type="text"name="userName" width="10" maxwidth="10"

INPUT Type="submit"name="submit" value="submit"

/ FORM

/ BODY

/ HTML

% End if%

Page2.asp Kanada wie:

% @ Language = VBScript%

% Dim strUserName

Wenn Request.QueryString ("userName Dann ") ""

strUserName = Server.HTMLEncode (Request.QueryString ("username"))

Sonst

Response.Cookies ("username") = Request.Form ("username")

strUserName = Server.HTMLEncode (Request.Form ("username"))

End If%

HTML

HEAD

META Http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"

/ HEAD

BODY

h3 Align="center" Hallo: % = strUserName% / h3

/ BODY

/ HTML

Nun, da dieses Angriffs war eine wirksame Kontrolle. Dass diese Labels und Script durch bösartigen Code, sind sie in schriftlicher Form entstanden, wie unten dargestellt:

Wir erhöhen auch die IIS-Komponente verwendet, um alle für eine dynamische Eingabe von Sonderzeichen-Filter. Für diejenigen, die guten Seiten haben, diesen Ansatz zu Cross-Site-Script-Attacken zu verhindern kommen einfach. Wir können dieses Steuerelement REQUEST Tore von ASP-Seiten blockieren, können Form, Cookie, um den Inhalt der Anfrage-String und Verfahren zu erkennen:

Wir können auch schreiben, Log-Datei durch die Methode der statistischen Daten zu den Komponenten anzuschließen. Immer wenn ein Kunde nach Eingabe einer illegalen Charakter, wird diese Komponente beachten Sie seine IP-Adresse und Zeit in Anspruch nehmen. Details sind Doug Dekan Roll Ihre eigenen Anwendungen auf IIS ASPToday Artikel.

Wir müssen nur ein paar einfache Buju nehmen kann wirksam verhindern, Cross-Site-Script anzugreifen. Abgesehen von den oben erwähnten drei Methoden, Microsoft und CERT auch dringend empfohlen, einen Prozess nennen sie "Plausibilitätsprüfung"-Ansatz verwenden. Angenommen, es ist nur erlaubt mit dem digitalen Eingang Fenster eingeben, und wir geben es zu einer begrenzten, so dass nur Zahlen von 0-9 digitalen Eingang. Microsoft und CERT verwendet werden, um eingegebene Zeichen von diesem begrenzten Ansatz als die separate Nutzung von Filtern Sonderzeichen sind viel besser. Angenommen diese Maßnahmen können Sie diejenigen, die Ihre Website besuchen, wenn Kunden Ihre Website besuchen, um geschützt werden zu lassen.

Zweitens, die vor Hackern Angriff unserem Browser-Methode:

Wenn Sie im Internet surfen zum richtigen Zeitpunkt, wie Sie verhindern, dass Angriff? Microsoft und CERT empfiehlt, nicht auf wilde Vermutungen in der Online-Hu berühren. In Anbetracht dieser namens PC Magazine John Dvorack einer Spalte eine interessante Antwort gab. Er hält dies für Microsoft's vorsätzlichen Handlungen: Das ist für Menschen, die surfen, um diese Websites sicher zu besuchen, wie AOL und MSN.com Web site einzuschüchtern.

In unseren Beispielen, auch wenn Sie nicht zufällig wandernden online, können wir nicht verhindern, dass im Internet Hacker-Angriffe. Ironischerweise kommt Großteil des Risikos von unseren vertrauenswürdigen Sites. Wenn Sie die Website muss nicht in Frage stellen wollen, müssen Sie sich nicht herunterladen dynamische Inhalte oder Cookie. Wetten Sie die Details entnehmen Sie bitte Ihrem Browser Informationen.

Microsoft warnte auch, dass der Browser sollten Sie die Active Script gesetzt und strikt zu begrenzen den Stand der E-Mail ist ebenfalls gesetzt strikt zu begrenzen den Empfangsmodus. Klicken Sie auf den Link in der Nachricht, sollten Sie vorsichtig sein. Für weitere Informationen entnehmen Sie bitte auf den Namen Microsoft''s Knowledge Base-Artikel Q253117 Buch. Als Vorsichtsmaßnahme sollten Sie besser ein wenig mehr Online-Erfahrung und Zeit vorsichtig sein werden.

Abschluss

Wenn Sie eine frühere UNIX-Programm-Entwickler sind, können Sie nicht wissen, was bedeutet, dass die Cross-Site-Script. Sie wissen, dass viele Manager auf Seite Benutzernamen und Kennwort angemeldet wurden Wurzel, Wurzel. Die gleiche Anzahl von Datenbank-Administrator-Namen und Passwort wurden sa, vergessen. Du weißt Webzine (wie Phrack und Alt2600), nach den Methoden bieten sie Schritt für Schritt können Sie einen Server Verwundbarkeit kennen. In dieser Hardware, wissen Sie auch, dass viele der Standort-Datenbank-Server und Web-Server nicht selbst zu schützen. Aber die Erfahrung von einem Hacker, muss die Maschine Lähmung.

Zwar ist es leicht zu nehmen, um das System vor Hackern Maßnahmen zu verhindern, aber unser System ist an den Hacker exponiert gewesen. Wir haben jeden Grund zu glauben, dass im nächsten Jahr wird es einige neue Sicherheitslücken werden. Mr. John Howard in den CERT das Unternehmen unter der Führung hat in einem Artikel erwähnt worden: "Laut der vorliegenden Studie, die zu jedem Namen auf der Internetseite des durchschnittlichen Jahr, Angriffe von Hackern mindestens einmal. "

Auf den Servern, auch wenn nur ein solcher Angriff ist unerträglich. Cross-Site-Script-Angriffe sind eine andere Weise Hacker verwenden können. Aber wir brauchen nur die oben erwähnten einfachen Behandlung kann das Auftreten dieser Form von Angriff zu verhindern.
Immer wenn wir denken, an eine Zeit, Hacker, Hacker, wie dieses Porträt: ein Einzelgänger, trat ruhig anderer Leute Servern, zu zerstören oder zu stehlen, anderer Leute Geheimnisse neigen. Vielleicht wird er auf unserer Homepage zu ändern, werden betrügerische Ansprüche zu stehlen Kunden Kreditkartennummern und Passwörter. Darüber hinaus werden die Hacker-Angriff Ihres Besuchs unserer Website. Zur gleichen Zeit wurde unser Server seine Komplizin. Microsoft bezeichnet diesen Angriff als "Cross-Site-Script"-Attacken. Die meisten dieser Angriffe fanden in dynamisch generierten Web-Seite zur rechten Zeit, aber die Hacker's Ziel ist nicht auf Ihre Website, sondern besuchen Sie die Website des Kunden.

Beschreibung des Cross-Site-Script Angriff

In einem Buch mit dem Titel ADVISORY CA--2000-02 der Zeitschrift CERT uns gewarnt: Wenn der Server auf dem Client-Eingang ist nicht zuverlässig geprüft werden böswilligen Hackern geben Sie einige HTML-Code, wenn diese HTML SCRIPT Programmcode Eingang verwendet wird, sie können es verwenden, um Sabotageakte durchzuführen, wie die Einfügung einiger Offensive Bilder oder Töne, etc., aber auch mit dem Kunden rechten Seite stören.

Wir wissen, dass einige Freunde angeregt worden waren, eine Reihe von verdächtigen Websites frei, bekommen sie nur 10 bis 20 kleine Fenster, sind diese Fenster oft durch die Bildung des Scheiterns der JAVA oder avascript Schaltfläche Sicherheit begleitet, dies als die Mausefalle ist bekannt. Schließen Sie das Fenster ist vergebens, wenn wir ein Fenster schließen, wird ein weiteres Fenster öffnet sich ein paar 10. Dies geschieht häufig, wenn der Administrator nicht in der Hou Fasheng. Hacker verwenden Sie die Maus-Ereignis wird durch Cross-Site Angriffsmethoden SCRIPT Beispiel des Kunden.

SCRIPT-Tags und böswilligen Unfug sind nicht einfach, sie können sogar stiehlt Informationen und zerstört das System. Ist das nicht eine kluge oder sogar smart Hacker sind in der Lage zu stören oder ändern Sie die Server mit dem SCRIPT Dateneingabe. Script-Code kann auch Angriff mit Client-Systemen, kann Schäden an der Festplatte. Und wissen Sie, wenn Sie die Server-Seite verwenden, wird Hackern Skript auch an einem sicheren Ort, wo Ihre Server ausgeführt wird, um! Wenn der Kunde einen Brief auf Ihrem Server identifiziert wird, das gleiche Vertrauen, dass sie schädliche Code SCRIPT. Auch dieser Code ist in der Form von SCRIPT oder OBJECT Server von Hackern.

Selbst mit einer Firewall (SSL) kann nicht verhindern, Cross-Site-Angriffe SCRIPT. Das liegt daran, wenn die Ausrüstung erzeugt schädliche Skript-Code auch SSL verwendet, die SSL-Server, die wir nicht identifizieren können den Code an die. Wir müssen mit dem Kunden zu tun vertrauenswürdigen Sites dann mit der Hand über Hacker es? Und die Existenz eines solchen Schadens, möglich machen Verlust von Ansehen Ihrer Website.

Erstens SCRIPT Cross-Site-Angriffe Beispiel:

Laut CERT's Informationen, dynamischen Input hat in der Regel diese Formen: URL-Parameter, Formular-Elemente, COOKISE und Datenanforderungen. Lassen Sie uns zu analysieren, die nur zwei Seiten der Website, ist die Website namens: MYNICESITE.COM. Erster Einsatz eines Formulars oder Cookie an den Benutzernamen zu erhalten:

% @ Language = VBScript%

% If Request.Cookies ("username") "" Then

Dim strRedirectUrl

strRedirectUrl = "page2.asp? userName ="

strRedirectUrl = strRedirectUrl & Response.Cookies ("username")

Response.Redirect (strRedirectUrl)

Else%

HTML

HEAD

TITLE MyNiceSite.com Home Page / TITLE

/ HEAD

BODY

H2 MyNiceSite.com / H2

form Method="post" action="page2.asp"

Geben Sie Ihren Benutzernamen MyNiceSite.com:

INPUT Type="text" name="userName"

INPUT Type="submit" name="submit" value="submit"

/ FORM

/ BODY

/ HTML

% End If%

Die zweite Seite liefert den Benutzernamen zu begrüßen:

% @ Language = VBScript%

% Dim strUserName

Wenn Request.QueryString ("username") "" Then

strUserName = Request.QueryString ("username")

Sonst

Response.Cookies ("username") = Request.Form ("username")

strUserName = Request.Form ("username")

End If%

HTML

HEAD / HEAD

BODY

h3 Align="center" Hallo: % = strUserName% / h3

/ BODY

/ HTML

Wenn Sie Text eingeben oft normal, alles ist normal. Wenn Sie den Script-Code: SCRIPT alert (''Hallo .''; / script eingeben, wird avascript Warnschild Pop-up:

Das nächste Mal besuchen Sie diese Warnhinweis wird die gleiche erscheinen; Dies liegt daran, den Scriptcode in die Zeit nach dem ersten Besuch war, um in einem Cookie zu bleiben. Dies ist ein einfaches Beispiel für Cross-Site-Angriffe.

Wenn Sie denken, dies ist ein besonderer Fall, können Sie auch wollen, sich anderweitig umzusehen online, in Person versuchen. Ich habe die Regierung auf einige große Websites, Bildungs-Websites und kommerziellen Websites getestet, darunter Dique Sie Bufenchuxian der Yi Shang bereits sagte, habe ich sogar eine Website gefunden, ich häufig benutze Kreditkarten für Ye Ren er tatsächlich durchgeführten am Eingang nicht gefiltert wird, Denken Sie wirklich schrecklich.

Zweite, mit E-Mail an Cross-Site-Script Attack

Cross-Site-Script Angriff in der Listen-Server, Usenet-Server und Mail-Server eingesetzt sind besonders anfällig zu kommen. Das folgende ist ein Beispiel für MyNiceSite.com Website erklären. Da Sie grasen oft diese Seite, ändert sich sein Inhalt nicht put it down du liebst, so dass Sie unbewusst setzen den Browser in einen dynamischen Web-Inhalten ist immer das Vertrauen dieser Einstellung.

MyNiceSite.com Seiten ist stets durch den Verkauf von Abonnements per E-Mail-Adresse der E-Mails Briefe an Einkommen, die in der Tat eine sehr gute Idee zu erhalten. Also kaufte ich es in einem Postfach-Adresse. Und machte eine Menge von E-Mail an Sie. In dem Schreiben, sage ich Ihnen so bald wie möglich, um diese Seite zu besuchen und überprüfen Sie Ihren Account mit Hilfe der neuesten Situation. Um Ihnen eine bequeme, machte ich auch einen Link auf dieses Schreiben. Ich würde Link-URL, den Benutzernamen Parameter in der Script-Code zu lecken hat. Einige Kunden unwissentlich auf diesen Link klicken, das heißt, wenn auf meinem (im Bild), und ich habe auch profitieren:

Es ist diese Arbeit, wie wenn Sie auf diesen Link nach Link in der Script-Code klicken Sie werden verwendet, um Ihren Browser zu meinem Guide avascript Programm herunterladen und ausführen werden. Mein Skript überprüft, verwenden Sie IE-Browser, um fortzufahren, um die Kontrolle ActiceX particularlyNasty.dll herunterladen. Denn bevor Sie die Inhalte dieser Website, die immer sicher ist, so mein Skript-Codes und Active-Steuerelemente auf Ihrem Rechner frei laufen kann.

3, Activex Angriff Beschreibung

Bei der Erörterung der ActiveX, CERT und Microsoft keinen Hinweis auf Cross-Site-Script-Methode der Gefährdung durch. W3C In "Der Sicherheitsrat Frequently Asked Questions von ActiveX-Sicherheitslücken wurden auf eine genauere Beschreibung gemacht. Java-Applet über die Kontrolle des Systems ist streng begrenzt. So Entwicklung, wenn sie vorsieht, dass nur diejenigen, die keine Bedrohung für die Sicherheit des Systems darstellen durfte die Operation auszuführen.

Auf der anderen Seite ist ActiveX über das Funktionieren des Systems nicht streng begrenzt. Wenn man jedoch heruntergeladen wurde, können Sie die ausführbare Datei als tun, was sie dasselbe tun wollte. IE-Browser für diese Funktion ist auch mit gewissen Einschränkungen, wie die unsichere Website gemacht, in seinen Standardeinstellungen werden nicht zulassen, die Sie herunterladen oder erhalten Sie eine Warnung prompt. Ist auf der Grundlage der Entwicklung von ActiveX für Unternehmen wie VeriSign Inc., haben sie angesichts von ActiveX-Steuerelementen nummeriert. Wenn Sie nach dem Download Zeitsteuerung, IE-Browser wird Ihnen eine Warnung und zeigt den Grad der Schurke seine Glaubwürdigkeit. Von der Anwender entscheiden, ob diese Kontrolle zu glauben. Als die Sicherheit des Systems erhöht.

Allerdings, für diejenigen Nutzer, die nicht viel Erfahrung, waren sie oft unbewusst, auf die ursprünglichen Einstellungen geändert werden, um diese Kontrollen ermöglichen, ohne spezielle Aufforderung auf die heruntergeladene. Darüber hinaus ein Neuling, auch im Fall einer Aufforderung zum Download ohne Denken macht keine Marke, in denen die Kontrollen. In unseren Beispielen, weil Sie der Site vertrauen, Ändern der Browser-Einstellungen, so steuert ActiveX ohne spezielle Aufforderung zum Download, und unwissentlich auf Ihrer Maschine beginnt zu laufen .

4, 16 hex ActiveX Script Angriff codiert

Schlechte Absichten sollte zwischen dem Etikett und dem Skript zu unterscheiden ist sehr schwierig. Script kann auch in Form von 16 hex werden verstecken sich. Lassen Sie uns unter folgender E-mail diesem Beispiel sehen Sie bitte? Es ist in Form von 16 hex verschickt wird:

Es ist fast eine komplette Nachricht, die eine 16 hex gefälschten URL-Parametern: sender = mynicesite.com enthält. Wenn der Benutzer auf den Link klickt, der Browser des Nutzers werden die ersten genannten Fall direkt an die Verarbeitung der Pop-up-Warnung Fenster zu starten.

Teil II: Cross-Site-Script Attack Kriminalprävention

Erstens, wie Sie verhindern, dass Cross-Site-Server-Angriffe Script

Glücklicherweise ist die Verhinderung Cross-Site-Script-Technologie Angriff perfektionieren. Mehrere Möglichkeiten ergriffen werden, um diese Cross-Site-Script-Attacken zu verhindern werden können:

1. Am dynamisch generierten Seiten sind Zeichen codiert

2. Zu filtern und Begrenzung der Eingabe

3. Von HTML-und URL-Codierung verwenden

1. Am dynamisch generierten Seiten sind Zeichen codiert

Sie müssen dem ersten Gebrauch ist dynamisch Seiten auf die Zeichencodierung generiert, müssen Sie es tun, oder Hacker wird wahrscheinlich Ihre Zeichensatz ändern und einfach durch Ihre Linie der Verteidigung. Wenn Sie unsere Webseite ist auf Englisch Website, so dass wenn wir die Zeichencodierung in lateinische Buchstaben-ISO 8859-1 auf die Zeile wie folgt:

META Http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"

2. Filtering und beschränken alle Eingabedaten

Dies soll Cross-Site-Script Die zweite Methode des Angriffs, während der Anmeldung zu verhindern in. Lassen Sie sich nicht diese besonderen Zeichen eingegeben werden. Deshalb können wir hinzufügen avascript Verfahren onsubmit Weg, um diese Funktion zu erfüllen. In diesem Fall beschränken wir können nur 15 Zeichen eingeben. Dadurch wird verhindert, diese langen Skript-Eingang.

In Knowledge Base-Artikel QA252985 Dieses Buch bietet einen kurzen avascript Microsoft-Programm, um die Input-Daten filtern. Wir haben auch eingeführt aufgrund der besonderen Umstände des vorliegenden Codes für unser Beispiel, wie:

checkForm Funktion () (

document.forms [0]. userName.value = _

RemoveBad (document.forms [0]. UserName.value);

return true;

)

/ / MICROSOFT''s Code

Funktion RemoveBad (strTemp) (

strTemp = strTemp.replace (/ / /"/''/%/;/(/)/&/+/-/ g ,"");

Rückkehr strTemp;

)

Mit dieser Methode können Sie die Filter in das eingegebene Zeichen enthalten:

% [] (); & + - "''()

3. Von HTML-und URL-Codierung verwenden

Obwohl die Verwendung von Filtern und Beschränkungen bereits erwähnt, ist der Input-Methode zu einem sehr wichtigen Mittel der Verteidigung zu verwenden, aber es war meine Art, solche Angriffe per Mail oder machtlos. URL-Parameter, weil ich die Botschaft direkt an. In Anbetracht dieser müssen wir eine robuste Sicherheit zu ergreifen. Wenn wir ASP, relativ gesehen, viel leichter zu lösen. Solange die Gesamtsumme für dynamisch generierte HTML-Seiten und URL-Codierung auf der Strecke. Der Fall für unser Beispiel, geben Sie die erste Seite der Umleitungs-URL haben wir die folgenden Änderungen:

strRedirectUrl = strRedirectUrl & _

Server.URLEncode (Response.Cookies ("username"))

Wir schlossen uns in der Umsetzung der Seite:

strUserName = Server.HTMLEncode (Request.QueryString ("username"))

Und

strUserName = Server.HTMLEncode (Request.Form ("username"))

Microsoft empfiehlt, für alle Ein-und Ausgabe von dynamischen Seiten sollten verschlüsselt werden. Selbst die Daten in die Datenbank und entfernen Sie die gleiche sollte wahr sein. Damit können Sie weitgehend vermeiden, Cross-Site-Script anzugreifen.

Zur Erreichung dieser in Page1.asp hinzugefügt werden sollte:

% @ Language = VBScript%

% If Request.Cookies ("username") "" Then

''Redirect erkennen, wenn das Cookie

Dim strRedirectUrl

strRedirectUrl = "page2.asp? userName ="

strRedirectUrl = strRedirectUrl & _

Server.URLEncode (Request.Cookies ("username"))

Response.Redirect (strRedirectUrl)

Else%

HTML

HEAD

META Http-equiv="Content-Type"content="text/html; charset=ISO-8859-1"

TITLE MyNiceSite.com Home Page / TITLE

/ HEAD

SCRIPT LANGUAGE="avascript"

! -

checkForm Funktion () (

document.forms [0]. userName.value =

RemoveBad (document.forms [0]. UserName.value);

return true;

)

Datei //*********************************************** *******

Datei / / Programmer: nicht original CODE - kommt von Microsoft

Datei / / Code Quelle: Microsoft Knowledge Base-Artikel Q25z985

Datei / / Beschreibung: Entfernt schlechte Zeichen.

Datei //*********************************************** *******

Funktion RemoveBad (strTemp) (

strTemp = strTemp.replace (/ / /"/''/%/;/(/)/&/+/-/ g, "");

Rückkehr strTemp;

)

Datei //--

/ SCRIPT

BODY

BR

H2 MyNiceSite.com / H2

BR

FORM Method="post"action="page2.asp" onsubmit="return checkForm();"

Geben Sie Ihren Benutzernamen MyNiceSite.com:

INPUT Type="text"name="userName" width="10" maxwidth="10"

INPUT Type="submit"name="submit" value="submit"

/ FORM

/ BODY

/ HTML

% End if%

Page2.asp Kanada wie:

% @ Language = VBScript%

% Dim strUserName

Wenn Request.QueryString ("userName Dann ") ""

strUserName = Server.HTMLEncode (Request.QueryString ("username"))

Sonst

Response.Cookies ("username") = Request.Form ("username")

strUserName = Server.HTMLEncode (Request.Form ("username"))

End If%

HTML

HEAD

META Http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"

/ HEAD

BODY

h3 Align="center" Hallo: % = strUserName% / h3

/ BODY

/ HTML

Nun, da dieses Angriffs war eine wirksame Kontrolle. Dass diese Labels und Script durch bösartigen Code, sind sie in schriftlicher Form entstanden, wie unten dargestellt:

Wir erhöhen auch die IIS-Komponente verwendet, um alle für eine dynamische Eingabe von Sonderzeichen-Filter. Für diejenigen, die guten Seiten haben, diesen Ansatz zu Cross-Site-Script-Attacken zu verhindern kommen einfach. Wir können dieses Steuerelement REQUEST Tore von ASP-Seiten blockieren, können Form, Cookie, um den Inhalt der Anfrage-String und Verfahren zu erkennen:

Wir können auch schreiben, Log-Datei durch die Methode der statistischen Daten zu den Komponenten anzuschließen. Immer wenn ein Kunde nach Eingabe einer illegalen Charakter, wird diese Komponente beachten Sie seine IP-Adresse und Zeit in Anspruch nehmen. Details sind Doug Dekan Roll Ihre eigenen Anwendungen auf IIS ASPToday Artikel.

Wir müssen nur ein paar einfache Buju nehmen kann wirksam verhindern, Cross-Site-Script anzugreifen. Abgesehen von den oben erwähnten drei Methoden, Microsoft und CERT auch dringend empfohlen, einen Prozess nennen sie "Plausibilitätsprüfung"-Ansatz verwenden.例如,假设有个输入窗口只允许输入数字,我们就给它做个限定,只允许0-9数字的输入。微软和CERT所采用的这种对输入的字符进行限定的办法要比单独的采用过滤特殊字符要好得多。采用了这些措施后你就能让那些参观你网站的客户在访问你网站时受到保护。

二、免受黑客攻击我们浏览器方法:

当你在网上漫游的时侯,怎样来避免受到攻击呢?微软和CERT建议不要在网上胡碰乱撞。针对这种情况,PC杂志一个栏目的名叫John Dvorack作者作了一个饶有兴趣的回答。他认为这是微软公司一起有预谋的行为:就是用来恐吓网上冲浪的人到那些安全的站点去浏览,如美国在线和MSN.com网站。

在我们所举的例子中,即使你不在网上胡乱游荡,也不能避免在网上遭到黑客的袭击。具有讽刺意义的是,大多数的危险都来自于我们最信任的网站。如果要让网站一定不出问题,你只好不下载任何动态内容或者任何cookie。预知详情请参阅浏览器的相关资料。

微软也警告你们应把浏览器的Active Script设置成严格限制的状态并把Email也设成严格限制的接收模式。在点击邮件中的链接时,一定要小心。如需进一步了解情况请参阅一本名叫<<Microsoft''s Knowledge Base Article Q253117>>的书。为了以防万一,你最好是多一点上网经验,并且时刻要小心谨慎。

结论

如果你是以前的UNIX程序开发人员,你也许不会知道跨站script意谓着什么。你知道许多站点的管理人员登录的用户名和密码分别为root,root.同样许多数据库管理员的名称和密码分别为sa,password。你也知道Webzine(如Phrack 和 Alt2600),依据他们所提供的方法能让你一步步地知道某台服务器的弱点。在这种硬件上,你也知道许多网站的数据库服务器和web服务器都没有进行自我保护。一但遭遇黑客,机器就得瘫痪。

尽管我们很容易采取防止系统受到黑客的攻击的措施,但我们的系统是一直暴露在黑客面前的。我们完全有理由相信下一年还会出现一些新的安全漏洞。在CERT公司John Howard先生指导下完成的一篇论文中曾提到:"跟据目前的研究显示,每个在英特网上具有域名的网站平均一年被黑客至少攻击一次。"

对服务器来说那怕只是一次这种攻击也是不能承受的。跨站Script攻击是黑客可采用的另一种方法。但我们只要进行以上所说的一些简单的处理就能防止这种形式攻击的发生。