IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Paramètres en POST via wget ou curl


Sujet :

Shell et commandes GNU

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Septembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2014
    Messages : 22
    Points : 10
    Points
    10
    Par défaut Paramètres en POST via wget ou curl
    Bonjour à vous commu du fofo,

    Need your help sur mon souci.
    J'ai un équipement en local qui possède une interface web. Cet équipement possède une page HTTP qui stocke sa config à l'adresse : http://ad_ip/conf/dv.xml. Je souhaite récupérer cette page via wget ou autre outil. Le souci, c'est que pour accéder à la page de conf, il y a une page d'authent http://ad_ip/log.cgi.
    Au login, l'échange se fait en POST. Je me suis donc orienté dans cette direction pour trouver ma commande. A l'aide du script formfind fournit sur ce site, j'obtiens la structure suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    --- FORM report. Uses POST to URL "/log.cgi"
    Input: NAME="submit_button" (HIDDEN)
    Input: NAME="keep_name" (HIDDEN)
    Input: NAME="enc" VALUE="1" (HIDDEN)
    Input: NAME="user" VALUE="+user_name+" (INPUT)
    Input: NAME="pwd" (PASSWORD)
    Select: NAME=""
      Option VALUE="en"
    [end of select]
    Button: "Log In" (SUBMIT)
    Input: NAME="_keep_name" (CHECKBOX)
    --- end of FORM
    Une des nombreuses commandes, qui me semble la plus pertinente, que j'ai lancée est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wget --post-data '_user=adm&_pwd=pwd&_submit_button=submit' http://ad_ip/log.cgi
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wget --post-data '_user=adm&_pwd=pwd&_submit_button=submit' http://ad_ip/conf.dv.xml
    Et j'arrive au même résultat, je ne récupère que la page html de la page de login.

    Je souhaiterai donc savoir comment récupérer la page de config.

    Merci de votre aide.

  2. #2
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Bonjour,

    Pourquoi ne pas utiliser les options d'authentification de wget ?
    Pourquoi ne pas utiliser ftp plutôt que http ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Septembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2014
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    Pourquoi ne pas utiliser les options d'authentification de wget ?
    J'ai essayé de l'utiliser, mais ça ne semble pas fonctionner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    wget --user=adm --password=pwd http://ad_ip/log.cgi
    et même avec --http-user.
    Ca me renvoi toujours la page html d'authent.

    Pourquoi ne pas utiliser ftp plutôt que http ?
    L'équipement ne possède pas de serveur ftp intégré malheureusement =/

  4. #4
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Lorsqu'on envoie une requête http à un serveur une deuxième fois, il a déjà oublié que l'on déjà fait une requête une première fois. Pour palier le problème, on utilise généralement un cookie, qui sert de carte d'identité à chaque passage. Essaie de récupérer le PHPSESSID qui se trouve dans le cookie ad hoc. Donne-le à wget pour qu'il télécharge. Il se fera passer pour ton navigateur.

    Cette solution fonctionne pour une récupération "live". Dans un script, cela ne marche pas.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Septembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2014
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Ce fameux cookie, je l'ai cherché mais je ne l'ai trouvé nul part , si tu sais où je peux le trouver je suis preneur.
    De ce fait, je n'ai pas pu récupérer le PHPSESSID.
    La récupération en 'live' n'est justement pas envisageable, car je vais devoir récupérer la page que je veux sur plusieurs mêmes équipements.

    Après avoir analysé le code html de la page, le champs qui sert de nom d'utilisateur est en javascript. Pour être passé par lynx, je voyais que le champ "user" n'y figurait pas, je comprends mieux pourquoi.

    Il sera question surtout maintenant de savoir comment remplir un champ en javascript. Et là je pense que ça se corse...

  6. #6
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Avec Firefox 35.0.1, on atteint les cookies par le menu outils/options, puis onglet "vie privée", lien "supprimer des cookies spécifiques". Et là il apparaît une liste en arbre des sites qui ont utilisé des cookies. Il ne reste plus qu'à trouver le cookie de ton matériel et le contenu de la feuille qui te convient.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Septembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2014
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    J'avais bien cherché à l'endroit que tu m'as spécifié mais après avoir fait plusieurs tests, je n'ai rien trouver, il semblerait qu'il n'y a pas de cookie qui se stocke =/
    J'ai également essayé avec chrome et ie mais rien à faire toujours rien...
    J'ai essayé ce que j'ai pu mais là je sèche.

    Si tu as d'autres pistes, je suis preneur.

    Merci beaucoup de ton aide.

  8. #8
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Ca va devenir de plus en plus dur de trouver à distance.

    L'absence de cookie est étonnant. Il ne faut pas se connecter à chaque requête.

    Le protocole http n'a pas d'obligation de te donner accès à tous les fichiers. Rien ne prouve que tu puisses récupérer le fichier xml.

    D'ailleurs, comment connais-tu l'adresse de ce fichier ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  9. #9
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 286
    Points : 12 742
    Points
    12 742
    Par défaut
    Bonjour,

    Au pire, tu peux essayer des outils tels que jmeter en mode batch.
    Normalement, on l'utilise pour du test de perf ou non reg,... mais c'est contournable pour l'utiliser en tant qu' automate.
    Bon, après, quand on ne connait pas, cela peut être compliqué à configurer/paramétrer.

    L'avantage par rapport à ton besoin, c'est qu'il peut simuler une session complète.
    Le désavantage, c'est que c'est du java, donc faut installer tout ce qui va bien en plus du fait que la configuration n'est pas simple
    Cordialement.

Discussions similaires

  1. [cURL] POST via socket
    Par lem01 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 20/12/2006, 16h38
  2. Transfert de paramètre en POST via XmlHttpRequest
    Par hdd dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/05/2006, 10h02
  3. passage de paramètre en post
    Par asetti dans le forum ASP
    Réponses: 6
    Dernier message: 07/11/2005, 21h10
  4. Comment envoyer une requête POST via HTTP ?
    Par pdtor dans le forum C++
    Réponses: 2
    Dernier message: 13/09/2005, 05h54
  5. [struts] passer un paramètre de page via un findForward
    Par Boosters dans le forum Struts 1
    Réponses: 4
    Dernier message: 08/03/2004, 17h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo