Perl: POST formulaire, attention je vous pose une colle !
LezardMoo
Messages postés
614
Statut
Membre
-
LezardMoo Messages postés 614 Statut Membre -
LezardMoo Messages postés 614 Statut Membre -
Bonjour !!
voila je suis confronté à un petit problème en perl, j'aimerais faire un petit robot qui me permet de récupérer des sauvegardes sur une application web (c'est pour ma boite, pour un peu plus d'info, j'ai une interface web sur un ipbx qui permet de faire des backup mais la mains uniquement, pas de scheduler... du coup sur 80 machines tout les jours, c'est pas la joie) <= petite explication pour justifier que mon robot n'est pas à des fins de "piratage" afin d'éviter les posts bidon du genre "ici on aide pas les mechant pipi pirate"
Maintenant le problème à moitier posé, je continue.
mon problème est que dès le début je suis embêté avec le fait que le formulaire de connexion ne contient pas la balise <form>, du coup je suis embêté pour remplir les input.
Quelqu'un à déjà eu à faire à cette situation ?
l'interface de mes ipbx est dev en java je pense, ca tourne sur du tomcat (mais je ne suis pas un pro dans ce genre de technologie)
Pour info je n'ai pas accès en ssh a la machine, le constructeur ne le permet pas.
Merci d'avance :)
voila je suis confronté à un petit problème en perl, j'aimerais faire un petit robot qui me permet de récupérer des sauvegardes sur une application web (c'est pour ma boite, pour un peu plus d'info, j'ai une interface web sur un ipbx qui permet de faire des backup mais la mains uniquement, pas de scheduler... du coup sur 80 machines tout les jours, c'est pas la joie) <= petite explication pour justifier que mon robot n'est pas à des fins de "piratage" afin d'éviter les posts bidon du genre "ici on aide pas les mechant pipi pirate"
Maintenant le problème à moitier posé, je continue.
mon problème est que dès le début je suis embêté avec le fait que le formulaire de connexion ne contient pas la balise <form>, du coup je suis embêté pour remplir les input.
Quelqu'un à déjà eu à faire à cette situation ?
l'interface de mes ipbx est dev en java je pense, ca tourne sur du tomcat (mais je ne suis pas un pro dans ce genre de technologie)
Pour info je n'ai pas accès en ssh a la machine, le constructeur ne le permet pas.
Merci d'avance :)
A voir également:
- Perl: POST formulaire, attention je vous pose une colle !
- Denon perl pro test - Accueil - Audio
- Active perl - Télécharger - Édition & Programmation
- DzSoft Perl Editor - Télécharger - Édition & Programmation
- Comment lire un fichier .pl perl ? - Forum Windows
- Perl: transformer un fichier en package ✓ - Forum Perl
1 réponse
Salut LezardMoo,
Tu pourrais inspecter le trafic http généré par l'usage de l'applet Java (en espérant que ce n'est pas du https), et répliquer son fonctionnement pour faire la même chose depuis Perl avec WWW::Mechanize.
Si son fonctionnement est trop opaque, je ne crois pas que Perl puisse intéragir avec la machine virtuelle Java pour piloter le fonctionnement de l'applet (et je ne crois pas que cela soit faisable non plus dans d'autres langages d'ailleurs, y compris Java, mais tu pourrais poser la question à des développeurs Java).
Une autre solution serait de créer un script automatisant l'envoi de touches du clavier à la fenêtre du navigateur. Tu n'auras pas trop de contrôle, car les éléments d'interface ne seront certainement pas identifiables, mais au moins tu pourras envoyer des touches "à l'aveugle" (naviguer avec tabulations, etc.).
Tu peux faire cela avec Perl, avec Win32-GuiTest pour Windows ou X11::GUITest pour Linux.
Ou tu peux utiliser des outils dédiés à ce type de choses.
Par exemple :
- sous Windows Autoit peut faire cela
- sous Linux, Autokey-gtk.
Ou alors, tu te plains à l'éditeur du logiciel, ou au constructeur de l'ipbx, qui fait des interfaces à la noix, et qui a peut-être un outil pour faire ce genre de choses, ou une solution maison à te proposer pour un usage "sérieux" de leur produit.
Dal
Tu pourrais inspecter le trafic http généré par l'usage de l'applet Java (en espérant que ce n'est pas du https), et répliquer son fonctionnement pour faire la même chose depuis Perl avec WWW::Mechanize.
Si son fonctionnement est trop opaque, je ne crois pas que Perl puisse intéragir avec la machine virtuelle Java pour piloter le fonctionnement de l'applet (et je ne crois pas que cela soit faisable non plus dans d'autres langages d'ailleurs, y compris Java, mais tu pourrais poser la question à des développeurs Java).
Une autre solution serait de créer un script automatisant l'envoi de touches du clavier à la fenêtre du navigateur. Tu n'auras pas trop de contrôle, car les éléments d'interface ne seront certainement pas identifiables, mais au moins tu pourras envoyer des touches "à l'aveugle" (naviguer avec tabulations, etc.).
Tu peux faire cela avec Perl, avec Win32-GuiTest pour Windows ou X11::GUITest pour Linux.
Ou tu peux utiliser des outils dédiés à ce type de choses.
Par exemple :
- sous Windows Autoit peut faire cela
- sous Linux, Autokey-gtk.
Ou alors, tu te plains à l'éditeur du logiciel, ou au constructeur de l'ipbx, qui fait des interfaces à la noix, et qui a peut-être un outil pour faire ce genre de choses, ou une solution maison à te proposer pour un usage "sérieux" de leur produit.
Dal
Alors en fait ma boite a déjà acheté un outil (fait meme par le constructeur des ipbx en question, mais sous un autre nom) or il apparait que les backups fait avec cette appli ne sont pas valides... soit pas backupé tout court soit backup mais lors de la restauration, echec.
Je suis sur un autre piste, il y aurait un port attaquable en RAW or je crois n'avoir jamais utilisé ce type de connexion, a part dans putty que je n'utilise pas.
Je vais donc chercher dans cette direction, mais je vais aussi explorer les tiennes qui m'interessent.
Merci :)
bon courage :-)
Sinon, en production, je n'ai pas non plus de tels bricolages.
Par contre, j'ai eu un pb similaire au tien avec un routeur, qui ne proposait qu'une interface Web avec du javascript, et des requêtes Ajax. J'ai testé des scripts expect qui se loguent sur des routeurs pour intéragir avec l'interface Web. C'est du html et javascript, exécuté avec le navigateur texte elinks qui peut exécuter des scripts ECMA (avec le moteur SpiderMonkey de Gecko).
Cela marche, mais ce n'est cependant pas très robuste.
J'ai fini par utiliser Firebug pour inspecter les cookies, les requêtes http générées, et reproduire le fonctionnement avec un script bash utilisant curl. Et comme cela, cela tourne comme une horloge :-)
Dans ton cas, il faudrait peut-être un sniffeur pour voir passer les requêtes générées par l'applet Java, voire utiliser un outil Java dédié à l'inspection de ce type d'applications. Peut-être quelque chose comme http://www.swingexplorer.com/ (mais je ne suis pas expert en Java) pourrait aussi t'aider, ou un décompilateur Java. Tu devrais poser la question à un spécialiste Java.
Dal
Pour décompiler le Java c'est déjà testé avec eclipse mais je n'ai quasiment que des .class
bien compilé donc je n'ai pas réussi à voir grand chose...
Pour le sniffer je pensais me faire un petit poste de TP et prendre le temps de tester tout ca mais... on doit bosser comme des chinois donc pas le temps de me poser dessus :/