This page has been robot translated, sorry for typos if any. Original content here.

Hacking Chat Teil 1 (Theorie und Praxis)



  • Teil 1
  • Teil 2


  • Diese Seite fordert in keiner Weise illegale Aktivitäten, "Cracker" usw. Das Hauptziel besteht darin, die Funktionen von HTML zu untersuchen und Fehler zu vermeiden, die mit seiner Verwendung verbunden sind. Für illegale Verwendung der bereitgestellten Informationen übernimmt der Autor keine Verantwortung. Über alle Fehler in den Chat-Rooms wurde die Chat-Administration vom Autor informiert.
    Alle Beispiele in diesem Artikel sind getestet und funktionieren in MSIE 5.50.4134.0600. Ich kann nicht die Verfügbarkeit anderer Versionen garantieren, aber ich bin sicher, dass fast alle Beispiele dort funktionieren werden.

    Glossar

    Hacking durch Spitznamen (Handler ohne Anführungszeichen)
    Hacking über den Nickname (der Handler ist in Anführungszeichen eingeschlossen)
    Hacking über Spitznamen (der Filter überspringt keine Anführungszeichen / Symbole)
    Durch Farbe hacken (Attribut ohne Anführungszeichen)
    Durch Farbe hacken (Attribut mit Anführungszeichen)
    Auf welchen Symbolen müssen Sie die Filter überprüfen
    Handler Limiter
    Fälschung von Spitznamen, leere Spitznamen

    Allgemeine Theorie

    Hier möchte ich auf die Grundlagen von Hacking-Chats eingehen. Es tut mir leid, vor den fortgeschrittenen Lesern - diese Methoden sind seit langem bekannt und alt wie die Welt. Wenn Sie ausreichend fortgeschritten sind, können Sie sich auf die folgenden Kapitel konzentrieren.

    Zuallererst möchte ich bemerken, dass jeder Chat originell und einzigartig ist (außer für replizierte Kopien eines Tsitschka, natürlich). Weil es absolut keine universellen Arten des Hackens gibt. Fast jeder Chat hat Funktionen, die berücksichtigt werden müssen, und ohne zu berücksichtigen, welche, dumme Vorlagen werden nicht funktionieren.

    Zuallererst, was verstehe ich wirklich, wenn ich den HTML-Chat hacke? Dies ist keine banale Flut und keine Angriffe auf den IP-Chat. Unter Einbruch verstehen wir eine nicht autorisierte Änderung des HTML des Chat-Dokuments oder den Zugriff auf versteckte Teile davon (zum Beispiel private), d.h. solch eine Auswirkung auf den Chat, die nicht für Benutzer bereitgestellt und erlaubt wurde. Dies gilt nicht nur für Chats, sondern auch für Foren, Gästebücher etc. (wo alle beschriebenen Methoden auch funktionieren und noch besser, weil diese Formen in der Regel schlechter geschützt sind als Chats).

    Alles oben genannte gilt nur für HTML-Chats. Hacking von Java-Chats ist ein separater und komplett anderer Song. Ich hoffe, Sie können eine Art von Chat von einem anderen unterscheiden :) ).

    Wir stehen also an der Schwelle zum HTML-Chat. Nehmen wir an, wir wollen es auf "Stärke" testen. Was soll ich zuerst machen? Zuerst verbinden wir uns durch einen anonymen Proxy (ich hoffe, Sie wissen, was es ist). Dies ist aus zwei Gründen notwendig: Erstens stellen wir unsere Anonymität zur Verfügung (das wäre der Admin des Onkels nicht auf den Arsch geschoben), und zweitens, wenn der Admin unsere Experimente nicht mag und er das Chatfenster schließt, könnten wir wechseln Ihr Proxy zu anderen IP-Adressen und wieder in den Chat gehen. Die Wahrheit ist hier eine Sache: Der Zugang zu einigen Chats ist nicht durch öffentliche Proxies erlaubt.

    Als nächstes müssen wir herausfinden, welche Art von Waffen wir haben, dh welche Attribute der Benutzer einstellen kann. In allen Chats können Sie in der Regel den Spitznamen des Benutzers sowie die COLOR des Benutzers eingeben. Manchmal können Sie auch die SOAP des Benutzers, seine Homepage, das Geschlecht, die Häufigkeit der Chataktualisierung usw. festlegen. In der Praxis sind solche Felder wie Farbe, Spitzname, Soap und die Homepage des Benutzers von Interesse. Sie werden direkt in den Textkörper eingefügt, und durch sie können Sie den Chat angreifen. Es sollte beachtet werden, dass Sie in einigen Chats registrieren müssen und einige der Attribute bei der Registrierung und einem Teil eingestellt werden - kurz bevor Sie den Chat betreten (oder bereits im Chat). Chats mit Registrierung sind in der Regel steiler gehäuft und besser geschützt.

    > Bezeichnen Sie sich selbst für mögliche Arten des Hackens. Zunächst schärfen wir das Codefragment des Formulars, in dem die Farbe unserer Nachrichten festgelegt ist (übrigens kann die Farbe sowohl für Spitznamen als auch für Text von Nachrichten getrennt eingestellt werden; Sie müssen beide überprüfen, da sie auf verschiedene Arten durch Chat analysiert werden können). Warum interessieren wir uns hauptsächlich für Farbe? Weil die Farbe innerhalb der Tags in ihren Parametern angezeigt wird, anders als zum Beispiel der Spitzname, der am häufigsten im Body der Tags erscheint. Und um einen Chat zu hacken, müssen wir uns in die Parameter des Tags begeben, so dass Sie seine Attribute ändern oder Ihr Skript einfügen können (manchmal können beliebige Tags einfach im Text von Nachrichten geschrieben werden, bis vor kurzem war es zum Beispiel chat.rambler chat . ru , aber diese Option ist so dumm, dass solche Chats wahrscheinlich nicht mehr existieren, und ich halte es nicht für).

    Uns interessiert, welche Informationen über die Farbe an den Server gesendet werden. Der am wenigsten sichere String-Typ ist, wenn die Farbe in Form eines eigenen Namens übergeben wird. Zum Beispiel:

    <select name=youcolor style="width: 70px">
    <option value=blue>синий value=blue
    <option value=red>красный
    <option value=darkred>т-красный
    <option value=green>зеленый
    <option value=black>черный value=black
    <option value=lightblue>голубой value=lightblue
    </select>

    Dieser Chat bricht in der Regel etwas zusammen :) . Eine schlechtere Option, wenn die Farbe als numerischer Code zurückgegeben wird:

    <select name=youcolor style="width: 70px">
    <option value=#0000FF>синий value=#0000FF
    <option value=#AF0000>красный
    <option value=#FF0000>т-красный
    <option value=green>зеленый
    <option value=#000000>черный value=#000000
    <option value=#0000AF>голубой value=#0000AF
    </select>

    In einem solchen Chat gibt es vielleicht Filter für alle Symbole außer den Ziffern, dem Zeichen # und den Buchstaben A, B, C, D, E und F. Dann müssen wir das Hacken durch die Farbe vergessen.

    Und schließlich die schlechteste Option, wenn die Farbe einfach als Zahl aus der Liste der zulässigen Farben übernommen wird:

    <select name=youcolor style="width:70px">
    <option value=1>синий <
    <option value=2>красный <
    <option value=3>т-красный <
    <option value=4>зеленый <
    <option value=5>черный <
    <option value=6>голубой <
    </select>

    In der Regel kann ein solcher Chat durch Farbe nicht gehackt (und oft sogar unmöglich) werden. Dies ist die sicherste Option (nebenbei empfehle ich Chat-Entwickler).

    Als nächstes müssen wir den HTML-Code ändern, damit wir beliebige Werte von Attributen frei zum Server senden können. Speichern Sie dazu die Site auf Ihrer Festplatte und ändern Sie das Anmeldeformular so, dass es auf folgende Weise chattet (oder registriert): Ändern Sie die relative Adresse des Formularaktionsparameters in die vollständige Adresse. Wir ersetzen alle Tags vom Typ Versteckt mit dem Typ Text und wählen Tags mit Eingabe aus . Außerdem müssen Sie die Einschränkungen für die Länge des Eingabewerts (falls vorhanden) entfernen. Zum Beispiel, wenn das ursprüngliche Formular die Form hatte:



    <form name="logon" method="POST" action="/cgi-bin/chat/chat.cgi">
    <table cellspacing="0" cellpadding="0">
    <tr>

    <td valign="middle">
    <small>Nickname:</small>
    <input type="text" name="username" size="12" maxlength="12" >
    </td>

    <td valign="middle"><small> TextColor:</small>
    <select name="color">

    <option selected value="black">black
    <option selected value="red">red
    <option selected value="blue">blue
    </select>

    </td>
    <td valign="middle">

    <small>
    <input type=submit value="Join Chat">
    </small>
    </td>

    <input type=hidden name=message value="logged on.">

    <input type=hidden name="logon" value="">
    <input type=hidden name=to value="Room">
    <input type=hidden name=frames value="yes">

    </td>
    </tr>
    </table>

    </form>


    Nach den entsprechenden Substitutionen erhalten wir dann:



    <form name="logon" method="POST" action="http://typachat.ru/cgi-bin/chat/chat.cgi">

    <table cellspacing="0" cellpadding="0">
    <tr>

    <td valign="middle"><small>Nickname:</small>

    <input type="text" name="username" >

    </td>

    <td valign="middle"><small> Text Color:</small>

    <input name="color">

    <option selected value="black">black
    <option selected value="red">red
    <option selected value="blue">blue

    </select>

    </td>
    <td valign="middle">

    <small>
    <input type=submit value="Join Chat">
    </small>
    </td>

    <input type=text name=message value="logged on.">

    <input type=text name="logon" value="">

    <input type=text name=to value="Room">
    <input type=text name=frames value="yes">

    </td>
    </tr>
    </table>

    </form>


    Beachten Sie, dass ein Dokument dynamisch über Funktionen wie document.write () erstellt werden kann. Am wahrscheinlichsten müssen Sie es in eine statische Ansicht konvertieren. Darüber hinaus passiert es oft, dass nach dem Speichern von HTML auf Festplatte der Chat nicht geöffnet werden soll. Dies kann dadurch verursacht werden, dass die Seite nicht vollständig gespeichert wurde, wenn sie aus Frames bestand. In diesem Fall müssen Sie die Struktur der Seite besser verstehen und alles richtig machen. Ein weiterer Grund kann sein, dass der Server das Referer- Feld des Request-Headers von http verfolgt und erkennt, dass wir nicht von seiner Seite kommen. In diesem Fall müssen Sie andere Methoden verwenden, die wir im Kapitel "Hacking auf der Ebene von http" diskutieren.

    Jetzt können wir mit dem Chat experimentieren. Zuerst müssen Sie herausfinden, welche Filter die Eingabewerte sind (zuerst für Farbe und Spitzname). Uns interessieren in erster Linie folgende Symbole:

    " " " = < > ; \ & % Lücke

    Wir geben sie in das Farbfeld und den Spitznamen ein, gehen in den Chatraum (wenn wir mit solchen Attributen dorthin gehen dürfen, wenn nicht, müssen wir die Zeichen nacheinander durchgehen) und sehen, welche Symbole vom Filter übersehen wurden (in den Chat schreiben, dass "Hallo" -Thread, und) im HTML-Text beschämt haben, welche Farben und Nick-Symbole vorhanden sind). Einige Chat-Räume löschen einfach die gefilterten Zeichen, einige ersetzen sie durch andere Symbole und einige konvertieren in eine verschlüsselte Form des Typs < oder ' . Solche transformierten Symbole passen uns nicht, weil HTML sie nicht akzeptiert (für weitere Details siehe das Kapitel "Ein paar weitere Hacking des langweiligen T-Chats").

    Als Ergebnis müssen wir eine Liste von Zeichen haben, die für jedes Attribut des Registrierungsformulars übersprungen werden.

    Als nächstes haben wir die Aufgabe, in ein beliebiges Tag zu gelangen, um dort sein Pramatra zu ändern oder ein eigenes Skript einzufügen. Es gibt zwei grundlegend verschiedene Wege, dies zu tun: Der erste besteht darin, dass der Code, den wir brauchen, durch die Attribute, die sich bereits innerhalb des Tags befinden (dh zwischen den spitzen Klammern) weitergegeben wird - zum Beispiel durch die Farbe oder Adresse der Soap. Die zweite besteht darin, die Struktur des HTML-Codes so zu zerlegen, dass der benötigte Code innerhalb des Tags liegt. Wie das gemacht wird, wird durch die Analyse der konkreten Struktur des Chat-Codes und der Menge ungefilterter Symbole für unsere Attribute bestimmt. Wir werden verschiedene Varianten des Hackens in den folgenden Beispielen betrachten. In der Zwischenzeit möchte ich auf einige Funktionen von HTML eingehen, die es Ihnen erlauben, interessante "Effekte" zu erzeugen.

    HTML-Funktionen

    P> Hier werde ich keinen Vortrag über HTML für Teekannen halten. Ich hoffe, dass Sie wissen, was ein Tag und seine Parameter sind, mit JavaScript vertraut sind und mindestens eine Webseite in Ihrem Leben auf HTML geschrieben haben (und nicht in FrontPage).

    Das größte Problem (und gleichzeitig die Stärke) von HTML ist, dass es keinen einzigen Standard gibt. Das heißt, es scheint dort zu sein, aber die Standards sind so vielfältig, und es gibt so viele in HTML verflochten, dass niemand es genau weiß (und oft nicht weiß, was es ist). Darüber hinaus führt der Wettbewerb zwischen den Browsern und die Heterogenität der Websites dazu, dass Browser versuchen, so viele Standards und Technologien wie möglich zu unterstützen. Und das Fehlen gemeinsamer Standards hat dazu geführt, dass Webmaster es sogar auf einer Seite schaffen, sich auf unterschiedliche Art und Weise in verschiedene Stile zu mischen: o. Dadurch können Hacker HTML hacken und geben den Entwicklern viel Kopfzerbrechen.

    Eine einfache Frage: Was sind die Trennzeichen in HTML und JavaScript? Auch ich kann diese Frage nicht sofort und eindeutig beantworten. Betrachten wir ein Beispiel:

    <font onclick= "alert()">Text</font>

    Hier ist alles klar und offensichtlich. Es gibt ein Tag, bei dem ein Click-Event-Handler in JavaScript geschrieben ist, dessen Text in Anführungszeichen steht. Die Tatsache, dass JavaScript verwendet wird, kann explizit angegeben werden:

    <font onclick="javascript:alert()">Text</font>

    Die Trennzeichen der Zeichenfolge in diesen Beispielen sind doppelte Anführungszeichen. Sie können jedoch ohne sie auskommen. Da nach onclick = nur ein statischer Handler-String gehen kann, erlaubt HTML das Weglassen von Anführungszeichen (dies gilt für viele Fälle, in denen das Argument nur eine String-Konstante sein kann). Also funktioniert dieses Design auch:

    <font onclick=alert()>Text</font>

    und jetzt werden wir statt einer leeren Nachricht etwas Sinnvolles einfügen:

    <font onclick=alert('Привет друзья!')>Text</font>

    Das Öffnen des Demo-Links zeigt, dass dieses Beispiel nicht funktioniert. Der Grund ist folgender: Der Body des Handlers kann nicht in Anführungszeichen eingeschlossen sein, aber in diesem Fall wird das erste Leerzeichen als das Ende des Zeilenprozessors angesehen (auch wenn das Leerzeichen selbst innerhalb der Anführungszeichen steht). Daher betrachtet der Browser den Prozessor als nur ein Alertfragment ('Hallo , und ein offenes Anführungszeichen zu finden, markiert eine Fehlermeldung, warum reagiert der Browser nicht auf den Platz in den Anführungszeichen? Ich denke der Grund ist, dass hier zwei Sprachen gemischt sind: HTML und JavaScript. Der Browser "sah", dass hinter dem Zeichen kein Anführungszeichen stand und suchte daher nach einem Leerzeichen als Ende des Handlers, aber das Innere des Handlers interessierte ihn in diesem Moment nicht, da er nicht auf HTML, sondern auf JavaScript Bezug nahm. nahm ein Leerzeichen nach einem Pferd Die Werte der folgenden Parameter funktionieren ohne Fehler:

    <font onclick="alert('Привет друзья!')">Text</font>
    <font onclick=alert('Привет_друзья!')>Text</font>
    <font onclick="alert('Привет друзья!')"onmouseover='alert()'>Text</font>
    <font color=alert('Привет друзья!')>Text</font>

    Beachten Sie ein wichtiges Feature: Wenn der Wert des Tag-Parameters in Anführungszeichen steht, kann das Leerzeichen vor dem nächsten Parameter weggelassen werden (die dritte Zeile des Beispiels). Die vierte Zeile des Beispiels funktioniert auch (in dem Sinne, dass der Browser nicht schwört, aber das Skript natürlich nicht funktioniert), weil der Browser den Inhalt der JavaScript-Attributfarbe nicht berücksichtigt und daher nicht auf ein offenes Zitat schwört, obwohl nur der Alert (' Hi (Da die Farbe in HTML eine beliebige Zeichenfolge sein kann, konvertiert der Browser in diesem Fall die Zeichenfolge in einen bestimmten numerischen Wert, der als Farbe betrachtet wird).

    Ob es andere Zeichen gibt - Trennzeichen des Prozessors ohne Anführungszeichen (außer für ein Leerzeichen und ein Symbol > ) eine Frage offen. Ich kenne solche Leute nicht, aber ich gebe zu, dass sie es sein können.

    Wie Sie in den obigen Beispielen sehen können, können Zeilentrennzeichen doppelte und einfache Anführungszeichen sein. Dies gilt gleichermaßen für HTML und JavaScript, es stellt sich jedoch heraus, dass es mindestens ein weiteres Zeichen gibt, das in HTML ein String-Trennzeichen ist (aber nicht in JavaScript!). Dies ist das Zeichen des umgekehrten Apostrophs ` (normalerweise auf einer Taste mit dem Buchstaben E ). Sie können das folgende Beispiel überprüfen:

    <font onclick=`alert('Привет друзья!')`>Text</font>

    Ich schwöre, dass mindestens 90% der Webmaster davon nichts wissen! Auf jeden Fall habe ich noch nicht gesehen, dass irgendjemand einen umgekehrten Apostroph verwenden würde. Dieses Symbol ist ein Geschenk des Himmels :) ).

    Es kommt oft vor, dass es notwendig ist, in Anführungszeichen zu verwenden - andere. Und das ist schwierig, besonders wenn der Chat nur eine Art von Anführungszeichen überspringt. Aber es stellt sich heraus, dass JavaScript Ihnen erlaubt, String-Konstanten in andere String-Konstanten einzufügen und gleichzeitig dieselben Anführungszeichen zu verwenden! Zum Beispiel:

    'javascript:st='Фиг вам';document.oncontextmenu=new Function('event.returnValue=alert(st)*0')'

    Das Beispiel verwendet verschachtelte einfache Anführungszeichen, der Fehlerinterpreter jedoch nicht. Ich bemerke, dass der Inhalt von internen Anführungszeichen nicht willkürlich ist: Sie sollten keine Leerzeichen enthalten, und am Ende sind einige Symbole beispielsweise nicht erlaubt ; oder ) .

    Jetzt reden wir über Links. Zuallererst sollte es solche Details bemerken: Die Entwicklung des Internets war so, dass es völlig verschiedene Technologien mischte. Der Zugriff auf Informationen kann über eine große Anzahl verschiedener Protokolle erfolgen. Wenn Sie den vollständigen Pfad des Dokuments (URL) angeben, können Sie daher alle Protokolle angeben, die dem Browser bekannt sind. Es ist bemerkenswert, dass Javascript auch Protokollen zugewiesen ist (obwohl dies nicht der Fall ist, aber anscheinend hielten die Entwickler es für zu fett, ein separates Konzept für Skripts zuzuweisen und sie den Protokollen zuzuordnen). Daher können Sie, wo immer Sie eine URL in einem HTML-Dokument angeben können, ein Skript einfügen. Und dieses Skript wird ausgeführt, sobald der Benutzer (oder der Browser selbst) diesen Link anfordert. Zum Beispiel:

    <a href=javascript:alert()>Text</a>

    Interessanterweise können Sie, zusätzlich zu Operatoren, in einem Verweis auf JavaScript einfach einen String- (oder numerischen) Wert angeben (allerdings unbedingt nach den Operatoren, falls vorhanden). Wenn Sie auf einen solchen Link klicken, führt der Browser zuerst die ahead-Operatoren aus, öffnet dann ein neues Dokument und speichert den Wert der letzten Zeile in der Verknüpfung:

    <a href=javascript:alert();'Hello!!'>Text</a> Ich <a href=javascript:alert();'Hello!!'>Text</a> , dass Tags auf diese Weise nicht in eine neue Seite eingefügt werden können.

    Hacking R Chat

    Hier ist ein Beispiel für einen der ersten Hack-Chats. Dieser Chat war sehr einfach und hat gehackt, was vom ersten Anruf an aufgerufen wird :) ).

    Und jetzt gibt es nicht genug Chats, in denen es passiert. Ich habe zwar selbst an diese Methoden gedacht, aber dann habe ich sie in Hacker-Magazinen gefunden.

    Die Eingabeform dieses Chats entsprach exakt der im Kapitel "Allgemeine Theorie" angegebenen Form. Nach dem Konvertieren und Speichern des Formulars auf der Festplatte habe ich überprüft, welche Zeichen im Farbattribut übergeben werden. Es stellte sich heraus, dass die folgenden Symbole (von denen, die uns interessieren - siehe das Kapitel "Allgemeine Theorie"):

    " " = ; % Lücke

    Nun, natürlich, alle Zahlen und Buchstaben bestanden. Die Länge des Linienwerts der Farbe war nicht begrenzt. Als nächstes schaute ich, wo genau die Farbe in den Nachrichtenrahmen eingefügt wird. Hier ist ein Teil dieses Rahmens:

    <font color=Black><b>Путник</b>- Alpha, привет ))</font>
    <font color=Red><b>Alpha</b>- Всемприветик !!</font>

    Wie Sie sehen können, wird die Farbe ohne umgebende Anführungszeichen eingefügt. Das passte mir. Ich loggte mich unter dem Spitznamen Shram ein (naja, oder fast unter einem solchen Spitznamen;)) und die Farbe rot Größe = 20 . Mein Beitrag sah so aus:

    <font color=red size=20><b>Algol</b>- Hi</font>

    Es wurde in einer sehr großen Schrift gedruckt, was die Bevölkerung des Chats überraschte :) ).

    Trotz der Tatsache, dass wir die Tags nicht direkt einfügen können, aber die Erlaubnis, ein Leerzeichen in das Farbattribut einzugeben, erlaubte uns, nicht autorisierte Parameter des Tags zu spezifizieren. Das war mir natürlich nicht genug. Ändern Sie die Schriftgröße natürlich cool, aber wirklich etwas Nützliches kann nur mit Skripten getan werden. Ich konnte das Skript- Tag nicht direkt einfügen (oder zu diesem Zeitpunkt wusste ich noch nicht, wie ich es machen soll). Aber ich könnte den Handler auf ein Event-Tag setzen. Das ist die Farbe, nach der ich gefragt habe, was einen Nerd aus dem Chat entfernen würde:
    #A0A000 onmouseover=parent.frames[2].forms[0].ExitChat.click() size=30. Und dann schickte ich ihm eine lange Nachricht an Privat. Die Farbe der Nachricht habe ich so aufgenommen, dass sie sich nicht von der Hintergrundfarbe unterscheidet. Und die Größe der Schrift und die Länge der Nachricht waren so groß, dass das Opfer wahrscheinlich mindestens einmal mit der Maus auf die Nachricht gegangen ist, wodurch mein onmouseover- Handler statt des Benutzers die Schaltfläche "Chat verlassen" gedrückt hat :) ).

    Aber nach und nach gab es clevere Männer, die den Trick herausgefunden hatten und den Cursor bewusst nicht über das Chat-Fenster bewegten. Mein Skript hat nicht immer funktioniert :( (Zuerst dachte ich, dass es keinen Ausweg gäbe, weil ich das Skript nur als Event-Handler einfügen kann. Wenn dieses Ereignis nicht funktioniert, funktioniert das Skript nicht.) Aber in den Annalen fand ich eine Lösung (jetzt ist es schon trivial geworden) und es ist allgemein bekannt.) Es stellte sich heraus, dass im Style- Attribut können Sie die URL des Hintergrunds für das Tag angeben, und wo Sie die URL angeben können, können Sie das Skript dort aufschreiben, und am wichtigsten, dass das Hintergrundbild selbst heruntergeladen wurde , als das HTML-Dokument geladen wurde! Um die Benachrichtigung den Chat-Teilnehmern anzuzeigen, habe ich mich mit der folgenden Farbe angemeldet Dies:

    style=background-image:url(javascript:alert('приветик_всем_!!'));

    Es sollte ein wichtiges Detail beachtet werden: Da die Struktur der meisten HTML-Chats derart ist, dass die Seite regelmäßig aktualisiert wird, wird das auf diese Weise gesendete Skript mehr als einmal und viele Male ausgeführt, bis unsere Nachricht vom Bildschirm verschwindet.

    Aber hier ist der Wert des Farbattributs für das Ablegen des Chats:

    style=background-image:url(javascript:parent.frames[2].forms[0].ExitChat.click());

    Sie müssen sich daran erinnern, dass das privat gesendete Skript nicht nur von Ihrem "Gesprächspartner" gesehen wird, sondern auch von Ihnen selbst. Sie müssen also wissen, wie Sie sich vor dem Einfluss des Skripts schützen können. Dies kann auf zwei Arten geschehen: Entweder Sie ignorieren sich selbst (und dann sehen wir Ihre eigenen Nachrichten nicht) oder in den Browser-Einstellungen, um die Anzeige von Bildern zu verbieten. Dann wird das Skript, das durch das Hintergrundbild ausgelöst wird, nicht funktionieren.

    Jetzt möchte ich einige nützliche Skripte zeigen, die in gehackten Chats verwendet werden können:

    javascript: navigiere ('http://meinserver.ru'); - lädt myserver.ru in den aktuellen Frame (oder die aktuelle Seite).
    Einige Chats, wenn Sie das http: // - Fragment sehen, betrachten dies als einen Link und das <a> -Tag wird automatisch eingefügt. Da dies unser Skript zerstören wird, sollte dies nicht erlaubt sein. Um dies zu tun, lassen Sie einfach das Präfix http: aus (das standardmäßig bereits akzeptiert wird). Dann sieht das Skript so aus: javascript: navigiere ('// myserver.ru'); Zwei vor dem Schrägstrich sind obligatorisch.

    javascript: parent.frames [2] .document.location = 'http: //myserver.ru' - lädt myserver.ru in einen der Frames.

    javascript: for (;;) open () - öffnet eine unendliche Anzahl von Fenstern (wenn nicht rechtzeitig navigiert, führt es zum Hängen der Maschine und dem anschließenden Neustart).

    javascript: document.write ('<script> alert () </ script>') - ersetzt den aktuellen Frame durch ein Skript, das dann ausgeführt wird. Hinweis: Wenn der Chat die <und> (und das ist die überwältigende Anzahl von Chats) nicht vermisst, können wir ein solches Skript nicht einfügen. Aber es gibt einen Ausweg. Dies ist eine Anwendung der Funktion unescape () , die den ASCII-Code des Zeichens in ein Zeichen umwandelt. Wir ersetzen die spitzen Klammern durch die unescape () -Funktion mit den entsprechenden Codes, dann sieht unser Skript so aus:

    javascript:document.write(unescape('%3C')+'script'+unescape('%3E')+'alert()'+unescape('%3C')+'/script'+unescape('%3E')) javascript:this.insertBefore(e=document.createElement('IMG'));e.src='demo.jpg' - fügt das Bild nach dem Text ein. Beachten Sie, dass Sie in IE 5.x ein beliebiges anderes Tag als FRAME, IFRAME und SELECT einfügen können.

    In IE 4.x können mit der Funktion createElement () jedoch nur IMG- , AREA- und OPTION- Tags eingefügt werden . Ich habe keine Informationen über Netscape, Sie können selbst experimentieren. 'javascript:st='Фиг вам';document.oncontextmenu=new Function('event.returnValue=alert(st)*0')' / * blockiert das Dropdown-Menü der Seite und macht daher den HTML-Inhalt des Frames unzugänglich. Dank dessen können Sie Ihre Machenschaften mit dem Chat-Körper verbergen :) ). * / Manchmal ist es nützlich, sich mit dem Spitznamen einer anderen Person einzuloggen. Chats mit einem Benutzerregistrierungssystem erlauben dies nicht, wenn Sie das Passwort nicht kennen (und Sie wissen es wahrscheinlich nicht). Die banale Ausgabe: Registrierung mit einem Spitznamen, in dem der Buchstabe des lateinischen Alphabets durch einen sehr ähnlichen Buchstaben des russischen Layouts ersetzt wird. Zum Beispiel loggen Sie sich unter dem Spitznamen admin ein, wo der lateinische Buchstabe a durch Russisch ersetzt wird. Die Methode ist primitiv, aber es funktioniert)). Es gibt auch schwerere Fälle. Zum Beispiel ist es in manchen Chats verboten, Zeichen aus verschiedenen Layouts in einem Nickname zu verwenden. Dann hat der neugierige Geist keine andere Wahl, als sich an Onkel Gates um Hilfe zu wenden. Und jetzt ist sie Freundlichkeit, Microsoft hat sündige Benutzer nicht vergessen und hat uns ein Symbol gegeben ­ (aka ­ es ist % AD ), was die Microsoft-Firma "Soft Bindestrich" ("Short Bindestrich") nannte. Es sieht wirklich wie ein Bindestrich in Word aus, und in einem Excel auch, und sogar in einem Notizbuch, aber nicht in IE! Für Microsoft's Icon-Explorer ­ existiert einfach nicht, das heißt, es scheint zu existieren, aber für ihn haben sie vergessen , eine grafische Darstellung zu machen. Es erscheint einfach nicht in der HTML-Seite! Wenn wir also einen kurzen Bindestrich zu einem Nicknamen hinzufügen und darunter registrieren, betreten wir den Chat mit dem Spitznamen, der auf der HTML-Seite genauso aussieht wie der Spitzname ohne Bindestrich. Und Sie können es noch cooler machen - melden Sie sich mit einem Spitznamen an, der nur kurze Bindestrich-Zeichen enthält. Dann wird dein Nickname überhaupt nicht im Chat angezeigt, absolut leerer Platz)).

    (Anmerkung: Während ich schon kurz mit dem kurzen Bindestrich war, habe ich noch Fälle gefunden, wenn es erscheint: Es erscheint nur als Bindestrich, wenn also ein kurzer Bindestrich innerhalb des Wortes steht und wenn dieses Wort am Ende der Zeile steht, dann kann das Wort nach dem Bindestrich in die nächste Zeile verschoben werden, und der Bindestrich selbst wird sichtbar! So ist es möglich, dass der Bindestrich unsichtbar ist - das präventive Merkmal des Microsoft (was jedoch seine Nützlichkeit beim Einbruch nicht verringert) :) ). Die Wahrheit ist nicht klar, warum bleibt es immer noch sichtbar in anderen Anwendungen?)



    Weitere 2 Stunden >>