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? Zum Beispiel im Chat der Text 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 der 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 Chat, nicht unsere Attribute zerstört. Als Ergebnis wird unsere Botschaft sein:

    Shram - Hallo

    Wenn der Chat ein Anführungszeichen nicht verpassen, die die Einstellung umgibt, dann knacken Sie den Chat über diese Option wird nicht möglich sein, :( . (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ückgabe Adresse in Foren, Gäste Bücher und Feld). Normalerweise wird ein Verweis auf die Seife geht in den Foren wie folgt:

    <b>&lt;a href=mailto:mylo@myla.net&gt; Fyodor Pupkin &lt;/a&gt;</b> (Mailto Fragment: Gateway - Einsätze selbst). Dann setzen Sie als 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 von Seife, in der Regel filtert die Eingangssymbole nicht installiert sind). Es stimmt, in einigen Foren und Chatrooms , wie es überprüft die Seife, aber diese Prüfung reduziert wird , um die Anwesenheit des Symbols zu fordern @. Wenn ja, bitte die Schöpfer des Forums und sie dem Hund zeichnen sich wie folgt: [email protected] "style = background-image : url (javascript: die Alert ( 'Nu_netu_u_menya_myla!'))".

    Einige Chat-Räume erlaubt legen Sie Ihre eigenen Bilder, Bilder Spezifikation Adressen. Wie wir bereits wissen, wo es die URL ist, ist es möglich, das Skript einzufügen. Ich werde es nicht einmal kauen. Alles ist so klar.

    Im ersten Kapitel wurde gezeigt, wie die Eingabe-Chat Form zu ändern. Insbesondere war es erforderlich, die relative Wirkung des Feldes auf einer absoluten Adresse zu ändern. Jedoch kann die Struktur des Chat so kompliziert sein, dass solche Änderungen können sehr viel erfordern. Ändern Sie in allen Fällen befassen unbequem (und kann verwechselt werden). Stattdessen können wir das Tag <base href = 'http empfehlen: //typachat.ru/'^gt ; Welches ist in jedem Ort HTML-Dokument eingefügt. Zur gleichen Zeit werden alle relativen Adressen in Bezug auf die in der Tag - Basis angegebenen Adresse adressiert werden (in diesem Fall in Bezug auf typachat.ru), unabhängig von der tatsächlichen Basis DNS - Namen.

    Sie wissen wahrscheinlich, was Sniffer? Wenn nicht, werde ich Ihnen sagen, 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 der Chat-Text 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 dem Effekt im Kapitel "Die Wunder des Symbols =" Hier ist möglich , Einfügen von Skript, Arbeiten auf dem Click - Ereignis auf den Link (wenn der Chat die Zitate nicht filtern nicht beschränken - in diesem Fall "- und das Symbol +) Zu diesem Zweck als Spitznamen, fragen. die folgende Bedeutung :. "+ alert ( '! Hallo') +" Sie fügen können , dass Miet - Objekte und ernstere (nur die toString () Funktion), zum Beispiel einem Spitznamen "+ toString (open ( '// yahoo.com", "_ top. ')) + "verweist den Benutzer, tyknuvshego Sie Ihren Namen, eine Pause von vYahoo Chat :) ).

    Hacking-Chat M

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

    Farbe Chat - Nachrichten M gefragt in numerischer Form (und hat daher eine Grenze für die 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 gibt keine Framing Anführungszeichen zu sehen. Hacking - Technologie ist einfach: an einem beliebigen Spitznamen Einloggen und Farbe ". Dann Eingabe der Chat, eine Nachricht wie "style = background-image: url (javascript: alert ( 'Hello_people !!')). Notieren Sie sich den Platz am Ende - es ist obligatorisch. 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 einfache Anführungszeichen, und wird vom Browser als String-Wert Farbe gesehen. In dieser Linie und wird dem Winkel-Tag schließen, ist so unsere Botschaft in der Tag! Ein Teil des Codes ausgeführt wird unmittelbar nach unserem Bericht 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 einer Schließwinkel zu Fuß wird als Schriftart zu markieren. Alles ist sehr einfach.

    Ein bisschen wie ein Backslash

    In den Zeilen hat eine Konstante JavaScript ein spezielles Steuerzeichen. Dies ist ein Backslash \. Eine seiner Aufgaben gehen gehören nach ihm Anführungszeichen ein Symbol zu sein, nicht eine Stopplinie betrachtet wird. Zum Beispiel:

    &lt;Script&gt; alert ( 'It \' s ') &lt;/ script&gt; - Gibt es nicht eine 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.

    Als er \ Charakter eine Kontrolle ist (und daher nicht direkt in der Zeile angezeigt wird ), dann wird das Display selbst, \\ dort Kombination. Dass diese Kombination erscheint als Symbol \.

    Was bedeutet das alles hat mit Hacking-Chat zu tun? Aber was: 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, können aber nicht als Führer handeln, und kann daher nicht die Struktur der HTML zerstören. Diese kurzsichtige Entwickler den Augen verlieren , die Tatsache , dass der Benutzer das Zeichen \ können ihre Zeichen \ zu blockieren. Zum Beispiel, ram ein Fragment des Chats für Benutzernachrichten 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 Zitat in ihren Namen nicht gegen die Tag-Struktur. Aber wenn wir den Spitznamen auf Al \ "gol ändern, dann wird ein Schrägstrich vor dem Chat einfügen geben Sie die folgende HTML:

    <code>&lt;a href=javascript:msgto(&amp;quot;Al\\&amp;quot;gol&amp;quot;)&gt;Sh\"ram&lt;/a&gt;</code> Zur gleichen Zeit unterhalten unsere Blöcke slash 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 verwendet werden können, um die Begrenzung Anführungszeichen zu blockieren, indem das Ende des nick Backslash eingefügt wird.

    Vor kurzem bemerkte ich ein weiteres Loch mit dem Missbrauch des Symbols \ Programmierer Chats verbunden. Nehmen wir zum Beispiel wird die Benutzernamen 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 Al'gol zu svoynik ändern, wird die Chat so einen Spitznamen, aber Al \ 'gol ersetzen, naiv zu glauben , dass ein Backslash durch Einfügen, werden sie den Tag vor Schäden zu schützen. In der Tat ist es nicht so :) . Beim Einfügen eines solchen nick im Körper des Chat, würde es so aussehen:
    &lt;a href=javascript:msgto(&amp;quot;Al\ gol")'&gt; Al'gol &lt;/a&gt; .
    Zur gleichen Zeit wird der Explorer eine Fehlermeldung angezeigt, wenn Sie versuchen, Spitznamen zu tyknut. Der Grund ist dies: das Zeichen \ ist nur sinnvoll in String - Konstanten dzhavaskripte, aber HTML nicht! Selbst HTML - Zeichen \ nicht versteht, und die deshalb fand zunächst ein Apostroph Ende des Attributs href, trotz der Tatsache , dass ein \ vor ist. So wird zum Beispiel, zerstören einen Spitznamen Algol '= die Tag - Struktur, trotz der Tatsache , dass vor dem Apostroph eingefügt Backslash

    Hacking at http

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

    Ich werde nicht auf das im Einzelnen eingehen. Dies geht über die Bruch HTML.

    Lassen Sie mich nur beachten Sie, dass es möglich ist komplizierter als üblich mittels HTML oder JavaScript auf dem HTTP-Ebene zu tun. Auf jeden Fall empfehle ich die 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 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 ein Beispiel davon machen könnte, wäre seine demonstrierte . Aber Sie können ein Wort nehmen, die im Browser-Fenster angezeigt werden: &lt;Fontonclick = alert ( '=')&gt; Text Wie Sie das Start - Tag in diesem Fall sehen können, ist ganz einfach nicht als Tag Browser wahrgenommen, obwohl keine Syntaxfehler :) ). Und was passiert, wenn wir schreiben Text

    Merkwürdigerweise in diesem Fall wird alles in Ordnung sein, obwohl es einen Syntaxfehler war. Wenn wir auf den Text klicken , wird ein Fehler = Pop - up. Versuchen Sie, die Apostroph für den dritten zickzack, oder Text zu bewegen:

    &lt;Font Onclick = alert ( '=')&gt; Text &lt;/ font&gt; Wir bekommen die gleiche überraschendes Ergebnis.

    Leider habe ich nicht den Quellcode oder die ausführliche Dokumentation für MSIE, aber ich denke, dass in MSIE ist in diesem Fall ein offensichtlicher Fehler gibt. Wahrscheinlich analysiert 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 es die JavaScript - Tags, die Inhalte der Parameter (es ist nur über die Attribute, die den Wert des Skripts ermöglichen, wie href oder Onclick). In der primären Analyse des Browsers aus irgendeinem Grund denkt Kombination = 'Anfang der Zeile, trotz der Tatsache , dass das Symbol = nahodtsya bereits im Einklang! Dann nehmen = 'für den Anfang der Zeile, sucht das Programm nach dem Ende (während vollständig über die Tatsache zu vergessen , dass eine Zeile mehr offen und nicht geschlossen). So ist alles , was = '(a = ") und bis zum nächsten Zeichen" wird ignoriert und als eine Zeichenfolge daher im ersten Beispiel folgt, hat der Browser den Tag nicht akzeptieren: er kein abschließendes Winkel finden konnte, weil es in der Zeichenfolge (sozusagen), aber. noch überraschender ist , dass die Tag - Parameter in der zweiten Stufe Analyse der Browser alles richtig (dies auf die Worte Text im zweiten Beispiel , indem sie können zufrieden sein) hat, und nimmt die Linie , wo es notwendig ist, und eine Halterung Schließwinkel findet auch, wo nötig. dies führt zu diesem Fragment eines dritten Beispiels des Textes wird im Klartext (weil , wie es ist , nicht markieren , Körper) nicht angezeigt, sondern (es wird an den Compiler der Analyse der Parameter auf der Bühne als einfach nicht kommen)! Flamme hallo Bill kein paramatrom - Tag!

    Mit diesem Browser Fehler ich in der Lage war Teil des IM - Code zu kommentieren Sie sind einfach nur unter dem Namen angemeldet = :) ). Hier ist ein Ausschnitt von Code, der eine Liste der Anwesenden im Chat angezeigt wird:

    <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>

    Zur gleichen Zeit mein Spitzname in der Liste ist nicht einfach, weil das Fragment zwischen den Anführungszeichen angezeigt

    )&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 = bezeichnet. Ähnliche "Effekte" wurden an meinem Chat-Nachrichten angezeigt.

    Große (oder traurig - suche jemanden), dass dieser Fehler fast überall geht, wo man zumindest den Faden Th (zumindest für MSIE 5.50.4134.0600) eingeben können, und Sie brauchen nicht einmal etwas in der Art und Weise zu ändern. Und das Schlimme ist, dass durch diese schwierig ist, erhebliche Vorteile zu erzielen (wie ein Skript ausgeführt wird).

    Zusammenfassend stellen wir fest, dass eine ähnliche Wirkung und das Symbol hat>, die als das Ende des Etiketts wahrgenommen wird, trotz der Tatsache , dass es im Inneren der Leitung 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 eine Farbe im Chat-Raum einfügen, Framing die Zitate nicht waren. Fragment Chat-Nachrichten (übrigens der Autor Chat offenbar nicht halten es für notwendig, die Tags zu decken)), 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>

    Verwirrt, was die Lücke nicht durch den Filter geleitet. Doch nach einigem Nachdenken, fand ich die folgende Lösung - die Farbe selbst, ich in einfache Anführungszeichen nahm, und dann keinen Raum eingefügt Parameter Art Farbe: 'red'style = background-image: url (javascript: während (1 == 1) offen ist ( )). Da in diesem Fall im zweiten Kapitel Abscheideraum erwähnt nicht erforderlich ist :) ).

    Übrigens war in diesem Chat von Rahmen voll, einschließlich versteckter und leer waren - wahrscheinlich gedacht für zukünftige Erweiterungen. Aber während die Administratoren über Erweiterungen gedacht, fand ich sie nützlicher Anwendung. Ich war im Chat für eine lange Zeit hängen - ein paar Monate. Und das nicht nur hängen: in einem der versteckten Rahmen ich meine saytik schob. Und saytik waren Banner Banner-Netzwerk. So Makar, ich getakteten 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 verglichen das Banner-Netzwerk, das Verhältnis von Hits / hosts und erkannte, dass sie betrogen. Es stellte sich heraus, dass der gleiche Besucher 50 mal 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 in den Chat cgi-shku. Ich weiß nicht, was "Verbesserungen" wurden in der zweiten Auflage gemacht, aber ich bemerkte nur eine Änderung: jetzt der lang Wert Linie Farbe begrenzt war, und war etwa 10 Zeichen (übrigens ist diese Einschränkung in vielen Chatrooms, obwohl ich verstehe nicht, was die Bedeutung ist ? ist das nicht einfacher ist es, Filter auf die eingegebenen Zeichen zu setzen? Auch wenn es auf diese Weise möglich ist, sie gegen Pufferüberlauf geschützt werden?). In einem solchen Fall natürlich die alte Methode nicht mehr funktionierte. Cram in 10 Zeichen können nicht ein anständiges Skript sein (es gibt selbst nicht Stil ist nicht gesetzt). Ich erkannte, dass man nur durch einen Nick oder der zweiten Methode brechen kann - zu zerstören strkturu HTML. Ein paar Stunden später habe ich versucht, es auf diese Weise und das. Neben günstigen nick Aussterben Effekt (siehe Kapitel "Die Wunder des Symbols =") nichts passiert ist. die persönliche Struktur Brechen hat aus den folgenden Gründen nicht zulassen: anstelle des Farbsymbol 'Einfügen ich die Linie geöffnet, aber es wurde von einem Apostroph verschlossen , die in Bezug auf die Zeit (hier war Chat nur Glück hatte - es ist nicht als Schutzmaßnahme gedacht war, obwohl viele Chats speziell für den Dummy 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 - Verweise auf die Zeit , wenn es möglich wäre , stattdessen einfügen odnarnyh Anführungszeichen, doppelte, ist das Problem nicht wäre, denn im Chat. doppelte Anführungszeichen werden nicht verwendet. Aber das Zeichen "nicht passieren Filter. Sonnenuntergang unter dem Namen Typ Algol = auch nicht geben , weil die Charaktere nach 'Algol =')> ignoriert und nicht - Tag - Parameter berücksichtigt. gearbeitet Kurs ist eine weitere Option , später in diesem Kapitel beschrieben," Variationen über ein Thema ", aber diese Skripte funktionieren nur, wenn Sie auf meinem Spitznamen Link klicken :( (. Ich war bereit zuzugeben, dass der gesamte Chat kann nicht knacken. Und dann im letzten Augenblick, Graben und in den HTML-Darm experimentieren, entdeckte ich, dass das Symbol des Reverse-Apostroph ist auch eine Beschränkung der Zeilen in der HTML !!! Und dieser Charakter Passfilter! Ohne ich denken angemeldet mit dem Spitznamen Algol und Farbe `und dann als Chat - Nachrichten an die folgende Zeile gesendet: .` style = background-image : url: (javascript alert ( '! war Pobeda_budet_za_nami')) Meine Botschaft im Körper des Chats 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>

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

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

    "Interception", "Betrug" und den Erhalt Rechte.

    Betrachten wir Methoden der Beschlagnahme von Auslandskommunikation (Gefreite) und Nachrichten im Namen anderer chatovtsev senden. Es gibt verschiedene Methoden der Interceptions, für verschiedene Arten von Chat-Räume vorgesehen. 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 einer Replik eines Strings schreiben wird, und anschließend die Taste "Senden". Ähnliche Container können gezogen und privat Benutzer werden. Jedoch sind diese Methoden zu grob, primitive und schwierig zu bedienen. Fortgeschrittenere Techniken wie das Abfangen, in dem er Sie an einen anderen Benutzer chatten nimmt.

    Wenn HTML-Chat zu schaffen, 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 Sie Ihre Soldaten zu schicken, und nicht in der Lage sein , Ihre Nachricht 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. Die erste Methode beruht auf der Tatsache, dass ein und derselbe Benutzer dieselbe 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 es mehrere Fenster mit Chat geöffnet. dynamische Methodennamen - Seit kurzem wird ein anderes Verfahren eingesetzt. Die Methode besteht in der Tatsache, dass bei jedem Eintrag für den Benutzer in dem Chat wird, wird sie automatisch eine temporäre eindeutige Anmeldung zugeordnet. Diese Anmeldeseite avtomatticheski Register, in denen das Gateway den Benutzer sendet. Jedes Mal, wenn der Benutzer eine Form der Replik sendet oder anfordert Nachrichten aus dem Chat-Seite sendet sie an den Server ein temporäres Anmeldename, unter dem der Server selbst und den Benutzer identifiziert. Temporäre Login-System generiert zufällige und zwei verschiedene Benutzer den gleichen 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 Anmelde-ID "vernäht" in der Kurtschatow-Seite für jeden Benutzer, weiß das System genau, wie sie durch den Benutzer in Verbindung steht, unabhängig von ihrer IP-Adresse, Proxy-Server, die Anzahl der geöffneten Fenster mit 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 haben wir das System für sie angenommen ... stellt sich heraus, kann es leicht geschehen, wenn gehackt Chat, und wir sind in der Lage Ihr Bild im Chat einzufügen. Wenn dann der Bild-Sniffer zu verwenden (siehe "Variationen über ein Thema"), können wir eine temporäre Logins alle Teilnehmer im Chat bekommen! Und wenn wir in jemandes spezifischen Login interessiert sind, müssen Sie ihm einen Sniffer privat zu senden. I ist folgendes zu beachten: die abgefangenen Login nur gültig ist, solange der Benutzer in einem Chat ist, wenn logout (wieder nach unten gehen wird), dann wird es eine neue temporäre Login sein.

    Klar, wenn der Intercept temporäre Administrator - Login, werden Sie uns automatisch und seine Rechte übertragen - wie die Fähigkeit , das Einfügen von Tags in der Nachricht zu leiten (dh kein Filter auf die <und>), oder die Möglichkeit der Entnahme aus dem Chat, oder Informationen über den Benutzer 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. Zunächst fehlte das Farbfeld fast alle (bis auf die Zeichen <und>), und ich kann es nicht sotavilo Arbeit hacken. Aber dieses Loch geflickt bald (nicht ohne meine Beteiligung). Die neue Version von der Farbe der Chat war nur Zahlen und Buchstaben fehlen. Brechen durch die Farbe ist unmöglich geworden. Dies gezwungen, mehr izoscherennye Methoden suchen. In der Tat, das einzige, was - diesen Spitznamen. Aus meiner eigenen Erfahrung weiß ich, in einem Chat-Spitznamen Hack, dass ziemlich schwierig ist, weil die Entwickler eher vorsichtig Filter nick ausgewählt. Doch im Chat übertrieben "Chip", dass "der Zeichensatz für den Nickname deutlich erweitert." Es war eine Art von Werbung. Ein wenig basteln mit Filtern am nick, entdeckte ich, dass die folgenden Zeichen übergeben:

    ' ` = ; \

    Symbol "verabschiedet wurde, aber vor ihm automatisch Zeichen eingefügt Chat \. Die Mechanismen , die mit der Kombination aus dem Kapitel zugeordnet ist " ein bisschen wie 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 Entscheidung. Und ich fand es!

    Lassen Sie uns ein Fragment von Beiträgen im Chat aussehen:

    <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 link href wird in einfachen Anführungszeichen, und der Spitzname war in doppelte Anführungszeichen. Da das doppelte Anführungszeichen verpassen eigentlich nicht die Live-Chat im Sinne des Spitznamens, die über das Argument der Funktion gehen, da es unmöglich war. Nick type = 'hat nicht funktioniert, weil die Handler in einfache Anführungszeichen eingeschlossen worden und wurden in die "Wunder des Symbols =" Effekt mit dem = -Zeichen funktionierte nicht gezeigt. И тут я перечитал собственную статью, и обнаружил следующее: если обработчик заключен в кавычки, то первая же закрывающая кавычка считается концом обработчика, даже несмотря на то, что сама она находится внутри других кавычек (и идет как строковая константа). dh например при компиляции следующего тега:

    &lt;a href='javascript:msgto("Mc'Donald")'&gt; браузер игнорирует двойные кавычки (поскольку они относятся не к HTML а к JavaScript), и воспринимает апостроф после Mc как закрывающую кавычку обработчика. Т.о. обработчиком является только 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 dezimal - Codierung 16. Codierung * Zeichenkodierung Unicode
    " " " " "
    ' ' '   '
    ` ` `   `
    <пробел>   +
    = = =   %3D
    < < < < %3C
    > > > > %3E
    \ \ \   %5C
    % % %   %
    + + +   %2B
    <короткий дефис> ­ ­ ­ %AD
    & & & & &

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

    Wie es? Abonnieren Sie RSS Nachrichten!
    Sie können auch shram.kiev.ua unterstützen, klicken Sie auf:

    Seien Sie nicht zu Ihren Freunden und finden Sie diese Informationen, teilen mit ihnen den Artikel nicht in Ordnung!

    Erweitern / Reduzieren Expand / Collapse Box mit Kommentaren

    Kommentare

    im Auge kommentierte halten , dass der Inhalt und der Ton Ihrer Nachrichten , die Gefühle von echten Menschen verletzen können, Respekt und Toleranz gegenüber seinen Gesprächspartnern, auch wenn Sie Ihr Verhalten in Bezug auf die Meinungsfreiheit und die Anonymität des Internets, ändert ihre Meinung nicht teilen, nicht nur virtuell, sondern realen Welt. Alle Kommentare werden aus dem Index, Spam - Kontrolle versteckt.
    Kostenlose Kreditkarte mit einem Limit von 15.000 US-Dollar.