Prenez votre tit compilateur java et compilez ceci :
package test;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class test {
public static void main(String[] args) throws Throwable {
ServerSocket ss = new ServerSocket(80);
Socket sc = ss.accept();
InputStream in = sc.getInputStream();
while (in.available()>0) {
System.out.print((char)in.read());
}
sc.close();
}
Notre ami Souhail, auteur de cette superbe idée, obtient :
GET /ADSAdClient31.dll?GetAd=&PG=IMSFRF&AP=1007 HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: en-gb
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1)
Host: rad.msn.com
Connection: Keep-Alive
Cookie: ANON=A=CF913843612DEA578DFC67A5BFFFFFFFF&E=6a7&W=3; NAP=V=1.7&E=669&C=kGnDtOefhf_iJSC-y0FBk7Y86deypRj5Lh1yC8rv3rfHH9eeyL7l5A&W=4; MC1=V=3&GUID=f6ca2df261ffe48bace5912798df8420; MUID=E61F9D7499CE4E60985A13F6BF7883A0
Dégustez !
# Décryptage
Posté par Christophe HENRY (site web personnel) . Évalué à 9.
L'hôte étant rad.msn.com, je suppose qu'il a redirigé (/etc/hosts) cette adresse vers localhost. Je suppose aussi qu'il a lancé son serveur en root (80/tcp) et utilisé msn. J'ai bon ?
Dans ces hypothèses, on peut ainsi supposer que les informations suivantes sont transmises à MSN ?
ANON=A=CF913843612DEA578DFC67A5BFFFFFFFF
E=6a7
W=3;NAP=V=1.7
E=669
C=kGnDtOefhf_iJSC-y0FBk7Y86deypRj5Lh1yC8rv3rfHH9eeyL7l5A
W=4; MC1=V=3
GUID=f6ca2df261ffe48bace5912798df8420; MUID=E61F9D7499CE4E60985A13F6BF7883A0
Mais pourquoi "User-Agent: Mozilla/4.0" ?
[^] # Re: Décryptage
Posté par ploum (site web personnel, Mastodon) . Évalué à 7.
Mais le rad.msn.com soutient plus ta théorie.
Mes livres CC By-SA : https://ploum.net/livres.html
[^] # Re: Décryptage
Posté par Pierre6020 . Évalué à 2.
Je suppose que ce domaine ne pointe pas réellement sur cette machine, donc ce bot indique rad.msn.com dans le host alors qu'il devrait indiquer l'IP ou le domaine réel de la machine.
Mais peut-être que cette requête vient de localhost ?
[^] # Re: Décryptage
Posté par Smarter . Évalué à 6.
[^] # Re: Décryptage
Posté par Ontologia (site web personnel) . Évalué à 2.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: Décryptage
Posté par Christophe HENRY (site web personnel) . Évalué à 2.
J'ai eu une sortie texte par ce programme après avoir accédé à http://localhost avec mon navigateur.
D'où ma question : pourquoi MSN cherche-t-il un serveur web local ? Tu n'aurais pas détourné l'adresse de rad.msn.com ?
[^] # Re: Décryptage
Posté par Jehan (site web personnel, Mastodon) . Évalué à 2.
en fait ce bout de code n'implémente pas de serveur web dans le sens où il ne fait aucun traitement. Pour un serveur web, il faudrait que le programme connaisse 2 langages: le protocole de communication http (interpréter les commandes qui lui sont envoyées, par ex ici la commande GET qui demande d'obtenir une "page") et le langage de structuration html (générer ou au moins transmettre des pages html et les fournir à travers http). Ici il ne fait ni l'un ni l'autre.
Néanmoins il écoute les communications sur le port 80. Or ce port est tout bêtement le port habituel (celui qui a été normé) pour les communications web. Comme 2 langages ne peuvent pas simultanément écouter sur un port (pas à ce niveau de socket en tous cas, bien qu'il existe d'autres moyens d'espionner des communications sur un port en cours d'utilisation), tu as été obligé d'arrêter ton serveur web pour langer ce programme de test.
Quoiqu'il en soit, tout ce que fait ce programme, c'est écouter donc sur le port 80 et rendre ce qu'il lit de façon brute, sans aucune interprétation. Par contre pour ce qu'on est sensé déduire du résultat... comme beaucoup d'autres gens dans cette page, je reste perplexe...
'lus.
Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]
[^] # Re: Décryptage
Posté par Laurent Cligny (site web personnel) . Évalué à 5.
[^] # Re: Décryptage
Posté par Ontologia (site web personnel) . Évalué à 5.
On s'est demandé ce que ça ferait si on le redirigeait sur le broadcast
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
# lapin compris
Posté par aurel (site web personnel, Mastodon) . Évalué à 10.
# Hotmail avec Mozilla
Posté par Mickaël Rémond (site web personnel) . Évalué à -1.
Mickaël
# Pour ceux qui voudrait tester
Posté par Benjamin Poulain (site web personnel) . Évalué à 1.
Pour compiler: javac test.java
Pour lancer sudo java test
[^] # Re: Pour ceux qui voudrait tester
Posté par polytan . Évalué à 1.
[^] # Re: Pour ceux qui voudrait tester
Posté par Jerome Herman . Évalué à 3.
Mais il se passe quoi si on fait telnet 127.0.0.1 80 ?
Juste pour savoir...
# Heuuuuuuu ...
Posté par Prae . Évalué à 7.
(ps: t'aurais pu mettre le lien source aussi)
[^] # Re: Heuuuuuuu ...
Posté par Ontologia (site web personnel) . Évalué à 3.
C'est tout :)
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: Heuuuuuuu ...
Posté par Christophe HENRY (site web personnel) . Évalué à 3.
Quelle utilité ?
[^] # Re: Heuuuuuuu ...
Posté par Anonyme . Évalué à 4.
Bref, rien de vraiment passionnant.
[^] # Re: Heuuuuuuu ...
Posté par arnaud . Évalué à 10.
Vraiment je ne comprends pas. Le code java oui, comme beaucoup d'autres personnes, mais l'intérêt de ton poste je ne vois pas.
En plus de ne pas expliquer dans ton journal, quand on te demande des explications dans les commentaires tu n'en donnes pas vraiment....
J'ai l'impression d'avoir à faire à un informaticien ;) (que je suis aussi)
[^] # Re: Heuuuuuuu ...
Posté par Anonyme . Évalué à 10.
Voyons, il explique qu'il est sous Windows, tu ne peux donc pas avoir à faire à un informaticien !
[^] # Re: Heuuuuuuu ...
Posté par arnaud . Évalué à 1.
------------------------------
informaticien sous XP
[^] # Re: Heuuuuuuu ...
Posté par benoar . Évalué à 10.
nc -l -p 80
Java c'est l'avenir, hein ....
[^] # Re: Heuuuuuuu ...
Posté par FReEDoM (site web personnel) . Évalué à 1.
[^] # Re: Heuuuuuuu ...
Posté par Thierry Thomas (site web personnel, Mastodon) . Évalué à 3.
nc -l 80
Extrait de `man 1 nc' :
-l Used to specify that nc should listen for an incoming connection
rather than initiate a connection to a remote host. It is an
error to use this option in conjunction with the -p, -s, or -z
options. Additionally, any timeouts specified with the -w option
are ignored.
[^] # Re: Heuuuuuuu ...
Posté par Sarcastic . Évalué à 2.
Basic usages
[…]
listen for inbound: nc -l -p port [options] [hostname] [port] ...
En fait, chez moi,
nc -l 80
n'écoute pas sur le port 80 (un port aléatoire ?).Peut-être est-ce dépendant de la version (ou de l'origine) de nc.
% nc -V
netcat (The GNU Netcat) 0.7.1
Copyright (C) 2002 - 2003 Giovanni Giacobbi
[…]
[^] # Re: Heuuuuuuu ...
Posté par Thierry Thomas (site web personnel, Mastodon) . Évalué à 2.
Ah ben oui, mais non : le message originel de benoar disait « sous Unix », donc pas GNU !
[^] # Re: Heuuuuuuu ...
Posté par benoar . Évalué à 3.
# oui et ?
Posté par Anonyme . Évalué à 7.
Oui, et alors ? Quel interet ?
Et puis il n'y a pas besoin d'écrire un programme pour ca, il suffit d'utiliser netcat ou autre.
[^] # Re: oui et ?
Posté par Christophe HENRY (site web personnel) . Évalué à 3.
(echo "coucou"|netcat -l 8080 -w1)& wget -q -O- http://localhost:8080
# Tout çà pour çà !
Posté par Obsidian . Évalué à 10.
Hint : dis à ton pote que nc -l 80, c'est beaucoup plus simple ! :-)
[^] # Re: Tout çà pour çà !
Posté par ploum (site web personnel, Mastodon) . Évalué à 10.
- Un code de 20 lignes qui demande une compilation alors qu'une simple commande suffit
- Aucune explication du pourquoi, du comment mais un étonnement que personne ne le comprenne
- Si demandé d'expliquer ce qu'il fait, il répond évasivement et esquive les questions parce que c'est tellement évident.
- Un titre (ou un nom de classe/projet) qui n'a absolument rien à voir avec le reste.
On a échappé à l'usage extensif d'accronymes. (Les 20 lignes de code du journal s'appellent en fait MOUFFLES, c'est le *truc* pour faire une écoute de port en utilisant un BEAN de type EJFL dans le framework STANZA).
Un truc qui marche très bien pour rigoler un coup : expose ton problème à un programmeur J2EE. Demande lui une architecture de solution. Dans sa solution, il y aura JBoss (c'est certain, 100% de réussite de mon côté). À cet instant, demande lui ce qu'est JBoss (réponse garantie : un serveur d'applications avec un air un peu étonné par la question). Et là, en avant pour une bonne tranche de rigolade, prononce le fatidique : "C'est quoi un serveur d'applications ?".
Après quelques minutes (ou heures, au choix) d'explications embrouillées qui se mordent la queue, assène le coup final :
"Ok. Mais en quoi est-ce qu'un serveur d'applications est utile pour mon problème ?"
J'avoue avoir fait ce coup là une bonne dizaine de fois et ça marche toujours aussi bien.
Mes livres CC By-SA : https://ploum.net/livres.html
[^] # Re: Tout çà pour çà !
Posté par arnaud . Évalué à 2.
Avant même de rentrer dans l'algo:
public class test {
Si il y a des conventions de nommage ce n'est pas pour rien
http://www.loribel.com/java/normes/nommage.html#classes
[^] # Re: Tout çà pour çà !
Posté par Obsidian . Évalué à 10.
[^] # Re: Tout çà pour çà !
Posté par arnaud . Évalué à 1.
Sans blague, ce n'est pas dur et ça améliore la lisibilité.
La majuscule aux classes, ok, ce n'est pas vraiment "important", mais quand je lis du code avec des variables qui commencent par une majuscule ça me gène.
[^] # Re: Tout çà pour çà !
Posté par Obsidian . Évalué à -2.
# Pourquoi en Java ?
Posté par Sylvain Sauvage . Évalué à 10.
sifflotant ⟶[]
[^] # Re: Pourquoi en Java ?
Posté par Obsidian . Évalué à 2.
[^] # Re: Pourquoi en Java ?
Posté par Octabrain . Évalué à 4.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.