Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 18/01/2013, à 22:26

Vinky41

Re : [Utilitaire Freebox] Script pour télécharger sur votre V6

Pour le VPN, c'est moi qui l'ai mis en place, pas de souci là dessus, c'est mon serveur qui le gère wink c'est d'ailleurs sur ce même serveur que sont les fichiers que je veux mettre sur la box.

Hors ligne

#27 Le 18/01/2013, à 22:30

Zakhar

Re : [Utilitaire Freebox] Script pour télécharger sur votre V6

Ok, si c'est ton serveur à toi, il y a moins de problème... mais cependant, à moins que ce soit une "dedibox" donc aussi chez Free (en fait Online, mais c'est une filiale), n'oublie pas que l'opérateur (OVH, Gandi, etc...) verra les flux "en clair" passer sur son infra. tongue

Dernière modification par Zakhar (Le 18/01/2013, à 22:30)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#28 Le 18/01/2013, à 22:33

Vinky41

Re : [Utilitaire Freebox] Script pour télécharger sur votre V6

ouais ouais ça c'est obligatoire, mais bon, cette crainte est valable pour tout accès sur ma box à distance malheureusement sad

Mais tu as raison de le rappeler.

Hors ligne

#29 Le 18/01/2013, à 22:36

Zakhar

Re : [Utilitaire Freebox] Script pour télécharger sur votre V6

Absolument, c'est la raison pour laquelle je ne fais cet accès distant (chez ma mère) que depuis chez moi. Comme je suis aussi chez Free, ça reste dans le "réseau local Free", et vu que contractuellement la Freebox de ma mère leur appartient, ainsi que tout ce qu'il y a dessus... c'est pas trop choquant dans ce cas d'avoir un truc en clair. De toute façon, si c'était chiffré avec un certificat SSL, Free aurait la clé privée et par conséquent les moyens de déchiffrer de toute façon.

Comme je l'ai mis dans le bugtracker (sur un autre bug d'un gars qui avait l'air de découvrir ce manque de sécurité), c'est tellement gros qu'à mon avis ils l'ont fait exprès pour que si tu as 2 notions de sécurité et 3 grammes de jugeote, tu ne le fasses pas en dehors du réseau Free (ou alors tu changes les MdP/Port de chez toi juste après !).

Même sans certificat, il y a des moyens simples de sécuriser un peu mieux.
Il suffit que la Freebox envoie un "challenge" (c'est à dire une chaîne aléatoire) dans la page de login, et la page de login fait :
SHA512(SHA512(MotDePasse) + Challenge) (**).
Du côté du serveur tu fais le même calcul et tu vérifies. Ainsi ce qui circule est un truc brouillé (non déchiffrable) et différent à chaque login (donc inutile de le "piquer" pour le rejouer, ça ne fonctionne pas !).
Pour faire ça, tu as besoin juste d'un truc : une bibliothèque qui calcule un SHA512 (tout autre hash "raisonnable" fonctionnerait tout aussi bien) en JavaScript(*)... et je suis sûr qu'en 10 sec de recherche sur le web on trouve ça ! lol
(*) parce que côté Freebox, c'est du Linux, donc la librairie pour calculer un SHA512 existe à l'évidence.
(**) ça c'est pour que la Freebox ne conserve pas le MdP en clair, mais seulement un hash. Sinon tu peux simplifier le premier SHA512... mais du coup, risque sur le stockage local -on doit pouvoir démonter le disque de la Fbx et le lire sur n'importe quel PC après tout!-

Dernière modification par Zakhar (Le 18/01/2013, à 22:47)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#30 Le 18/01/2013, à 22:45

Vinky41

Re : [Utilitaire Freebox] Script pour télécharger sur votre V6

Je ne suis pas certain que la sécurité soit "meilleure" si tu fais ça depuis une autre freebox. Ca n'empêche pas quelqu'un se positionnant entre toi et la box de chez toi de voir ton mot de passe wink

Enfin bref, ce n'est pas vraiment le débat, mais tu as eu raison (pour ceux qui liront ce topic) de rappeller de bien faire attention à ce point de sécurité et dans tous les cas de prendre en compte les conséquences de ce choix smile

PS : Je ne sais pas si tu avais vu sur la page précédente, mais malgré l'ajout du "-H 'X-Requested-With: XMLHttpRequest'" cela ne fonctionne pas non plus sad

Dernière modification par Vinky41 (Le 18/01/2013, à 22:49)

Hors ligne

#31 Le 18/01/2013, à 22:54

Zakhar

Re : [Utilitaire Freebox] Script pour télécharger sur votre V6

Vinky41 a écrit :

Je ne suis pas certain que la sécurité soit "meilleure" si tu fais ça depuis une autre freebox. Ca n'empêche pas quelqu'un se positionnant entre toi et la box de chez toi de voir ta box wink

Certes... mais là tu es au niveau "hardware". Parce que de chez moi partent des fils de cuivre France Telecom, mais ce sont des composants "passifs", le premier composant "actif" (c'est à dire avec de l'électronique et du soft) c'est le DSLAM de chez Free, idem du côté de chez ma mère. Donc quelqu'un qui se positionne "entre les deux" : bah... soit il est à l'intérieur de chez Free sur leur réseau local, soit il a mis des pinces-crocodile sur les fils de cuivre et il "écoute" (niveau "écoute téléphonique").
Je te l'accorde la sécurité n'est pas "meilleure" (elle est de toute façon à chier), mais c'est juste que ce ne sont plus les mêmes risques. Les risques sont :
- un gars de chez Free (mais ça on ne peut rien y faire, c'est leur matériel, et même si c'était du SSL ils auraient la clé !)
- une attaque "hardware" (/"gouvernementale" => type écoute téléphonique).

... donc nettement moins facile à faire qu'une simple log sur un proxy ou chez un hébergeur. wink

En réalité, une "sécurité" bien faite doit être proportionnée au "risque", c'est pourquoi j'ai dit par abus de langage que dans ce cas d'utilisation elle est "meilleure". L'abus de langage est que la "sécurité" n'est pas "meilleure", par contre dans un usage en "réseau local" (de Free à Free) c'est "mieux" proportionné aux risques somme toute faibles.


Et pour revenir au sujet (effectivement on s'est un peu écarté) commence par le commencement : le test "normal" à partir de l'extérieur (ton VPN par exemple) et après on avise !

... si ça se trouve il y a encore d'autre headers à mettre.

Dernière modification par Zakhar (Le 18/01/2013, à 23:03)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#32 Le 18/01/2013, à 23:02

Vinky41

Re : [Utilitaire Freebox] Script pour télécharger sur votre V6

Dernier HS : Oui je te l'accorde, dès qu'on sort du wifi c'est déjà plus compliqué pour quelqu'un de récupérer les infos (enfin particulièrement s'il est impossible de se connecter par Wifi d'où tu es et chez toi, sinon quelqu'un pourra toujours prendre les infos en se connectant à ce réseau wifi justement wink )

Pour les tests voici ce qui a été "fait" :

Télécharger sur l'interface web un fichier depuis le local & l'exterieur (vpn) : Cela fonctionne parfaitement.

Télécharger un fichier sur la box à l'aide d'un script depuis le réseau local  (en utilisant les ip privées) : Cela fonctionne parfaitement avec les lignes ici : http://forum.ubuntu-fr.org/viewtopic.ph … #p12251711

Télécharger un fichier sur la box à l'aide d'un script depuis le réseau local (en utilisant les ip publiques/Nom de domaine) : Cela ne fonctionne pas : Erreur 403 Forbiden

Télécharger un fichier sur la box à l'aide d'un script depuis un réseau externe : Cela ne fonctionne pas : Erreur 403 Forbiden.

Voilà donc mes résultats (sauf erreur de ma part)

Hors ligne

#33 Le 18/01/2013, à 23:08

Zakhar

Re : [Utilitaire Freebox] Script pour télécharger sur votre V6

Les deux derniers sont cohérents. En fait quand tu utilises l'IP publique en interne, ce n'est pas tout à fait comme utiliser l'adresse locale.
Par exemple si tu n'as pas activé l'admin à distance... bah ça ne marchera pas, bien que tu sois en local (en ayant donné l'IP publique).

Bon, il te reste maintenant à faire une trace Wireshark pour tenter de voir ce qui manque puisque ça fonctionne avec un navigateur.
Tu sais faire la trace Wireshark ?...

Sinon je peux tenter de trouver les commandes tcpdump équivalentes pour faire ça... mais je les oublie régulièrement... je suis un peu feignasse avec Wireshark qui est si pratique ! tongue

P.S.: il manque le test en "normal" (navigateur) depuis le réseau local, mais en donnant l'IP publique au lieu de l'IP locale.


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#34 Le 18/01/2013, à 23:33

Vinky41

Re : [Utilitaire Freebox] Script pour télécharger sur votre V6

Oui ça me semble logique effectivement wink

Pour le PS c'est ce que je disais dans le point 3, cela ne fonctionne pas sad

Pour wireshark, aucun souci je connais, là om je suis embêté, c'est qu'est-ce que je cherche ? big_smile En gros (si j'ai bien compris) je lance un dl sur ma box depuis le réseau extérieur et je regarde ce que dit wireshark ?

Mais après j'en fais quoi ? (là par exemple je viens de le faire en utilisant l'ip du réseau local) mais je ne vois rien de plus (mais je ne cherche peut-être pas la bonne chose sad )

Hors ligne

#35 Le 18/01/2013, à 23:43

Zakhar

Re : [Utilitaire Freebox] Script pour télécharger sur votre V6

En principe si tu rejoues très exactement ce que fait le navigateur, et que tu voies au travers de WireShark, ça devrait fonctionner.

Après, tu truc c'est d'enlever petit à petit les headers qui ne servent pas, parce que sinon le code est suant avec tout ce qu'envoie le navigateur.

Il faut aussi faire les séquences dans l'ordre où les fait le navigateur et ensuite voir si ça ne gêne pas quand tu enlèves des trucs intermédiaires. Le CSRF, tu le prends sur le login, ou il change à chaque "page" ? Si c'est la deuxième option, il faut demander la "page" (même si c'est inutile pour le download) histoire d'avoir le nouveau CSRF.

Et bizarre qu'ils aient scratché la possibilité d'utiliser l'IP publique en local. Enfin d'un autre côté vu qu'on peut utiliser l'IP locale, c'est pas dramatique tant qu'on peut faire marcher local & distant.

Dernière modification par Zakhar (Le 18/01/2013, à 23:46)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#36 Le 19/01/2013, à 00:02

Vinky41

Re : [Utilitaire Freebox] Script pour télécharger sur votre V6

Je ne sais pas ce que tu cherches exactement,

Je te met deux images de ce que renvoie wireshark voit au moment où je post un fihcier (en l'occurrence l'image iso de test de débit de free dans mon cas).

(j'ai bien sûr effacé mon ip publique)

Adresse publique :
Capture_2013_01_18_yy_23.47.01.png

Adresse locale :
Capture_2013_01_18_yy_23.53.30.png

Je ne vois strictement aucune différence (en dehors des jetons/ID)

Zakhar a écrit :

Le CSRF, tu le prends sur le login, ou il change à chaque "page" ? Si c'est la deuxième option, il faut demander la "page" (même si c'est inutile pour le download) histoire d'avoir le nouveau CSRF.

Non le CSRF reste le même tant que la session est valable. Donc tant que je ne suis pas déconnecté, ça reste le même smile

Dernière modification par Vinky41 (Le 19/01/2013, à 00:15)

Hors ligne

#37 Le 19/01/2013, à 00:30

Vinky41

Re : [Utilitaire Freebox] Script pour télécharger sur votre V6

J'ai peut-être trouvé quelque chose qui fait que ça ne fonctionne pas.

Voici ce que je j'ai avec mon script quand cela ne fonctionne pas :
Capture_2013_01_19_yy_00.27.59.png

Donc on est d'accord, ça ne renvoie pas la bonne chose à la box avec le script (ce qui doit expliquer l'erreur) mais je vois pas comment régler ça, si tu vois le truc ?

EDIT : Pour être totalement complet, voilà ce que j'ai quand le script fonctionne (en local donc) :
Capture_2013_01_19_yy_00.54.54.png
Autant dire, pareil que depuis l'exterieur :huh:

Dernière modification par Vinky41 (Le 19/01/2013, à 00:58)

Hors ligne

#38 Le 19/01/2013, à 01:54

Zakhar

Re : [Utilitaire Freebox] Script pour télécharger sur votre V6

Les différences sont effectivement faibles...

Le navigateur expose explicitement (Accept) qu'il veut bien du application/json, comme le XMLHttpRequest, ça peut jouer...

Après je m'interroge sur la différence de taille de 1 octet (Content-length 139 et 140) entre les requêtes interne/externe. Le csrf est de taille "variable" ou c'est juste que tu as oublié un caractère en le récupérant... ce qui expliquerait le bug.
Aussi le navigateur n'a pas l'air de donner la taille, ce qui provoque un "chunk transfer"... a priori c'est "pire", mais ça a l'air de marcher quand même.

En fait ce qui me turlupine le plus, c'est cette différence de taille du CSRF. Regarde si par hasard il n'y aurait pas une différence en distant, puisqu'il est à deux endroits (header et dans la form) si les deux valeurs sont bien identiques.

... et aussi tu utilises un curl apple... hum... si ça trouve il bugge... parce que bon, là c'est le forum Ubuntu, pas Apple. wink

Dernière modification par Zakhar (Le 19/01/2013, à 01:56)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#39 Le 19/01/2013, à 02:02

Vinky41

Re : [Utilitaire Freebox] Script pour télécharger sur votre V6

Le CSRF est de taille aléatoire de ce que j'ai remarqué donc je pense que c'est lié à ça également. Après est-ce que la taille est lié à l'accès distant ? Je ne sais pas sad j'ai pas forcement fait un "lien".

Pour ce qui est du curl "apple" c'est parce que j'ai fait les tests sur mon mac, mais mon serveur est sous une ubuntu et j'avais exactement le même problème que sur le mac (ou plutôt, le mac a le même souci qui le serveur) donc j'en déduis que la version du curl n'est pas à remettre en question.

Il n'y a pas d'erreur en copiant je l'ai fait tellement de fois que j'en suis sûr ^^

Pour les deux valeurs, quand je regarde sur le navigateur avec firebug, que se soit dans le form ou le header, j'ai exactement le même résultat.

La seule chose qui me semble pertinente, c'est le Accept forcé en application/json. Mais je ne sais pas comment le forcer en commande curl sad

EDIT : En revérifiant, le CSRF est parfois du même nombre de caractère que se soit en local ou en distant.

Dernière modification par Vinky41 (Le 19/01/2013, à 02:05)

Hors ligne

#40 Le 19/01/2013, à 10:45

Zakhar

Re : [Utilitaire Freebox] Script pour télécharger sur votre V6

Comme les autres headers :

-H "Accept: application/json, text/javascript, */*"

Car le man de curl dit :

man curl a écrit :

Note that if you should add  a custom header that has the same name as one of the internal ones curl would use, your externally set header will  be  used  instead of the internal one.


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#41 Le 19/01/2013, à 12:36

Vinky41

Re : [Utilitaire Freebox] Script pour télécharger sur votre V6

Ah merci beaucoup big_smile

Ca marche maintenant smile

Un très grand merci à toi. Je vérifie un peu tout et je reviens pour mettre les lignes de codes fonctionnelles pour que tout le monde puisse en profiter pleinement big_smile

EDIT : Donc voilà ce qu'il faut faire :

Connexion :

curl -s -D - -o /dev/null http://<Mon_IP_Publique>/login.php -d 'login=freebox&passwd=<Mon_MdP>'

Vous aurez donc un ID et un jeton qui s'afficheront

HTTP/1.1 302 Moved Temporarily
Server: nginx
Date: Fri, 18 Jan 2013 16:52:21 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
Set-Cookie: FBXSID="<ID>"; Max-Age=86400; HTTPOnly
X-FBX-CSRF-Token: <TOKEN>
Location: /settings.php

Il restera plus qu'à télécharger en utilisant les ID, jeton que vous avez reçu précédemment et bien sûr votre url :

curl -s -b FBXSID="<Mon_ID>" -D - -o /dev/null -e http://<Mon_IP_Publique>/download.php http://<Mon_IP_Publique>/download.cgi --data-urlencode "csrf_token=<Mon_Token>" -d "url=<mon_url>&method=download.http_add" -H 'X-Requested-With: XMLHttpRequest' -H 'Accept: application/json, text/javascript, */*'

Dernière modification par Vinky41 (Le 19/01/2013, à 21:46)

Hors ligne

#42 Le 19/01/2013, à 14:48

Zakhar

Re : [Utilitaire Freebox] Script pour télécharger sur votre V6

Alléluia !

Bon, ben ça me rassure pour quand il me faudra mettre à jour la Freebox de ma mère.

Merci à toi Vinky41 pour les tests curl !

Dernière modification par Zakhar (Le 19/01/2013, à 14:48)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#43 Le 19/01/2013, à 17:08

Vinky41

Re : [Utilitaire Freebox] Script pour télécharger sur votre V6

Tu rigoles ? Merci à toi surtout smile

PS : Je ne sais pas si tu vas pouvoir encore m'aidé, mais j'ai testé le script en mettant un caractère spécila (j'ai testé avec & et +) et cela ne fonctionne pas. J'ai tenté de remplacé par &amp; et le caractère ascii mais cela ne fonctionne pas sad.

Tu as une idée de ce qu'il faut "envoyer" pour que cela fonctionne parfaitement avec tous les caractères ?

EDIT : j'ai parlé trop vite smile

Un coup de wireshark m'a permis de trouver donc pour exemple :

& = %26
+ = %2B

Dernière modification par Vinky41 (Le 19/01/2013, à 17:21)

Hors ligne

#44 Le 19/01/2013, à 18:18

Vinky41

Re : [Utilitaire Freebox] Script pour télécharger sur votre V6

Yop, je reviens une fois pour demander un dernier "coup de main"

J'ai remarqué un petit souci de fonctionnement.

Alors oui ça marche, sauf que si il y a un '+' dans le token, ça ne fonctionne plus sad Donc pour le moment je me suis dit je vais faire un truc bête et méchant : "reconnecte toi jusqu'à ce que tu as généré un token sans caractère '+' mais c'est pas terrible...

Il y a moyen d'envoyer ce token sans que le caractère '+' merdoie ?

Merci d'avance smile

Hors ligne

#45 Le 19/01/2013, à 18:19

Zakhar

Re : [Utilitaire Freebox] Script pour télécharger sur votre V6

Oui c'est l'URL escaping wink


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#46 Le 19/01/2013, à 20:27

Zakhar

Re : [Utilitaire Freebox] Script pour télécharger sur votre V6

Et elle se vend bien ton appli iPhone/Android de téléchargement sur la Freebox Vinky41 ? wink


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#47 Le 19/01/2013, à 20:37

Vinky41

Re : [Utilitaire Freebox] Script pour télécharger sur votre V6

Thnx pour l'url escaping, je rajouterai les modifs que j'ai faites du coup pour l'intégrer.

Mon application ? Euh, tu dois confondre tongue je t'assure que je n'ai jamais développé la moindre application mobile, comme tu l'as vu, le dev c'est pas forcemment ma spécialité (loin de là) big_smile

Ce que je fais, c'est un script pour mon serveur perso (couplé avec cakebox pour être plus précis) ce qui me permet d'envoyer un fichier automatiquement en un clic sur ma box wink

Dernière modification par Vinky41 (Le 19/01/2013, à 20:45)

Hors ligne

#48 Le 19/01/2013, à 21:37

Zakhar

Re : [Utilitaire Freebox] Script pour télécharger sur votre V6

Alors le gars qui développe l'appli devrait nous remercier tous les deux, il vient de la mettre à jour. tongue

Personnellement je trouve pas ça très utile ce genre d'appli, sans compter les "problèmes" de sécurité puisque tu donnes forcément à l'application ton MdP/Port pour accéder à ta Freebox, et comme le code n'est pas ouvert... humm... Sans compter aussi le vol de mobile qui peut donner ces sésames aux voleurs.


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#49 Le 19/01/2013, à 21:42

Vinky41

Re : [Utilitaire Freebox] Script pour télécharger sur votre V6

De ce que j'ai cru lire sur un site de warez entre deux lignes de codes, le mec l'aurait fait un peu avant nous.

Il est peut-être tout simplement meilleur (je l'admet sans aucun doute big_smile) J'avoue que c'est la première fois que je bidouille autant pour faire un truc perso.

J'avoue en avoir une sur mon smartphone. Bon après, c'est toujours pareil, ça dépend ce que tu mets sur ta box. De mon côté je n'ai rien de confidentiel dessus et si un petit rigolo change mon mdp wifi ou un truc du genre, franchement, je m'en moquerais complètement (ça me ferais suer mais bon) après, c'est toujours pareil, c'est un rapport entre sécurité/amélioration de la vie de tous les jours qui faut bien peser.

HS : Un très grand merci à toi en tout cas, maintenant tout fonctionne parfaitement. Je peux donc maintenant envoyer sur ma box un fichier en un clic smile que du bonheur. (je vais mettre à jour le code)

EDIT : Code mis à jour ici : http://forum.ubuntu-fr.org/viewtopic.ph … #p12259041

Dernière modification par Vinky41 (Le 19/01/2013, à 21:47)

Hors ligne

#50 Le 19/01/2013, à 22:26

Zakhar

Re : [Utilitaire Freebox] Script pour télécharger sur votre V6

Sûr, le risque n'est pas immense... la "farce" la plus désagréable qu'on puisse te faire, c'est changer le MdP Wifi et te faire Hadopiser.

Mais bon, vu l'efficacité de la Hadopi... lol

Bon, je mettrai à jour mes scripts (dlfree et upfree) à l'occasion avec tes trouvailles curl.


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne