[Résolu][wget] user, pass, checkbox, et variable "challenge"

Bonjour,

Je souhaiterais me connecter en ligne de commande à l’interface hotspot de neuf (hotspot.neuf.fr/), qui necessite, d’entrer un user, mot de pass, de cocher un checkbox, et de valider l’ensemble.

J’ai tenté un :

mais, rien n’y fait, et je crois savoir pourquoi.

D’une part, ce n’est pas les seuls variable envoyé dans le POST (plusieurs champs hidden).
=> Peut-être faut il spécifier TOUS les champs dans mon --post-data ?

D’une autre part, il y a une full-titude de javascript derriere la connexion, dont 1 generation pseudo-aléatoire d’un pass “challenge” de type “9ed8ef1c67ec8931fbcdce2a48dcc93c”
=> Comment le prendre en compte, ou le générer ?

Merci d’avance !

Tu as regardé sur les wiki de neuf (justneuf.com/wiki/index.php/Accueil) s’ils n’avaient pas déjà fourni des scripts pour ça ?
Sinon, tu peux aussi regarder auprés de la communauté fon (www.fon.com): à priori, c’est le même systême d’authentification, et ils sont trés geeks, chez fon.
Sinon, à part sniffer la transaction (en https ?)… Pas d’idée.

Une méthode peut être d’utiliser lynx:

tu fais ta session, puis tu la recommence avec
lynx hotspot.neuf.fr/ -cmd_script=/tmp/neuf.cmd

Personnellement, je n’utiliserai pas wget pour faire ce que tu souhaites, il n’a pas vraiment été conçu pour cela.

Il existe d’autres outils, plus adaptés, qui permettent de simuler facilement le comportement d’un humain à travers à navigateur : le module Perl WWW::Mechanize [1] (il existe des équivalents pour Ruby [2] ou Python [3]).

Ce module permet facilement de se connecter à une page web, de remplir des formulaires, de cliquer sur des boutons, des liens, gérer les cookies, etc.

Pour plus d’informations, lis l’article Construire des robots pour le web de Linux Magazine n°75 [4][5].

[1] search.cpan.org/dist/WWW-Mechanize/
[2] mechanize.rubyforge.org/mechanize/
[3] http://wwwsearch.sourceforge.net/mechanize/
[4] articles.mongueurs.net/magazines/linuxmag75.html
[5] articles.mongueurs.net/magazines/linuxmag77.html

Merci de l’info, avant de creuser, j’ai un petit script shell qui marche :slightly_smiling:

#!/bin/bash

url="https://hotspot.neuf.fr/nb4_crypt.php"
okmatch="licitations"
login="0000000000"
password="cacaproot"

# quel que soit le site visité, on sera redirigé vers le
# portail captif qui génerera un token. L'utilisation du switch
# -L permet de suivre la redirection de type 302
challenge=`curl -L http://www.google.com|grep name=\"challenge|sed -r 's/.*value=\"([0-9a-z]+)\".*/\1/'`

#echo "challenge: ${challenge}"

# la phase 2 renvoie une réponse au token
response=`curl -L -d "username=${login}&password=${password}&cond=on&accessType=neuf&nb4=https://hotspot.neuf.fr/nb4_crypt.php&challenge=${challenge}" ${url}|grep response=|sed -r 's/.*response=([0-9a-z]+).*/\1/'`

#echo "reponse: ${response}"
# enfin, un refresh renvoie sur une page qui attend la
# réponse précedente pour activer la connexion
final=`curl -L "http://192.168.2.1:3990/logon?username=ssowifi.neuf.fr/${login}&response=${response}&uamip=192.168.2.1&userurl=http%3A%2F%2Fwww.fon.com%2Ffr%2Flanding%2Ffoneroneufbox%3Bfon%3B%3B&lang=fr&ARCHI"|grep ${okmatch}`

if [ ! -z "${final}" ];then
        echo "connected"
else
        echo "connection failed"
fi

Bonjour,
merci pour le petit scripte, il est vraiment très utile pour mon eepc.
donc, j exécute, (sur une debian) et j ai une erreur du genre “curl: (77) error setting certificate verify locations”, j ai jete un coup d oeil sur les manpages mais il s arrete au 76 :
" 76 Character conversion functions required

   XX     There will appear more error codes here in future releases.  The
          existing ones are meant to never change. "

quelqu un aurait une idée de ce que ca signifie ?

Je n’ai pas solution toute fait, mais regarde du coté du httpS (peut etre une librairie curl a ajouter)