Connexion automatique au portail captif WiFirst

Permalink | Publié le 2 avril 2017, dernière modification le 8 avril 2018.

Note : curl est aussi disponible pour Windows.

Je suis confronté depuis le début de mes études universitaires aux portails captifs des résidences étudiantes. Le premier problème avec ces portails captifs, c’est que si vous ouvrez votre navigateur vers une page HTTPS, vous n’êtes pas redirigé vers la page de connexion, je ne sais pas si ça vient d’une extension ou du navigateur, mais je suis obligé de saisir une adresse HTTP pour y accéder. Il est de plus en plus difficile de trouver des sites qui n’utilisent pas HTTPS, heureusement pour le moment il reste le site très utile perdu.com ! Firefox a ajouté très récemment une option qui propose de nous rediriger automatiquement, mais ça ne fonctionne pas encore chez moi, peut-être à cause de mes réglages perso.

Second problème, c’est que c’est pénible à remplir à chaque fois. Pour ce qui est du réseau du Crous de Toulouse, c’était assez simple, il suffisait de regarder le code source de la page web et de trouver le nom des champs à remplir et l’URL de destination :

curl -d auth_user="monIdentifiant" -d auth_pass="monPassword" -d redirurl="https://www.qwant.com" -d accept="Continue" http://192.168.60.1:8000/index.php

Désormais je suis au Crous de Rennes, et le réseau WiFi n’est pas géré par le Crous mais par WiFirst, un FAI spécialiste des résidences étudiantes dirigé par Vincent Bolloré. Ce coup-ci, ce fut moins simple. J’ai d’abord tenté la même approche, en regardant le code source, mais il y un token qui change à chaque génération de la page de login de WiFirst. Je fais donc un script pour récupérer le token et remplir le formulaire avec :

#!/bin/bash

# Identifiants
login="monEmail"
password="monPassword"

# On récupère la page
content=$(wget https://smartcampus.wifirst.net/sessions/new -q -O -)

# On récupère le champ caché (authenticity_token)
# On vire le value=" avec cut
# 8 résultats donc on ne sélectionne que la ligne n°2 avec sed
token=`echo $content | grep -o -P 'value.{0,46}' | cut -d '"' -f 2 | sed '2q;d'`
# Doit retourner un token du style : EnqeHzhuUrBNLs0fXEZUAMOCNypGrb5U9r9ekOK3uBY=

echo "Token récupéré : $token"

# On rempli le formulaire avec les identifiants et le token + un champ caché "utf8"
curl -d login="$login" -d password="$password" -d utf8="✓" -d authenticity_token="$token" -d accept="submit-connexion-form" https://smartcampus.wifirst.net/sessions

Malheureusement ce premier essai fut un échec, me retournant le résultat suivant :


Là où j’ai eu un petit coup de chance, c’est que j’ai configuré Firefox de façon à ce qu’il bloque l’auto-refresh des pages, dans about:config. Du coup j’ai pu voir que j’étais redirigé vers une page entre la page de connexion et le portail web « réseau social » de WiFirst. Le paramètre Firefox en question :

accessibility.blockautorefresh (true)

Du coup je suis allé faire un petit tour dans le code source :


Je clique sur le lien de redirection et là j’atteins une page que je ne voyais quasiment pas avant car la redirection était automatique. Et je vois un autre formulaire de connexion avec des identifiants différents des miens, et sans token :

Solution

Du coup j’adapte ma commande curl pour ce formulaire en mettant les identifiants récupérés dans le code source comme indiqué. Ce sont des identifiants différents mais ils sont en relation avec vos identifiants saisies dans la page de connexion, ça n’utilise pas les identifiants de quelqu’un d’autre. J’adapte également l’URL de destination.

#!/bin/bash

# Identifiants
login="truc@wifirst.net"
password="passwd"
url="https://qwant.com/"

curl -d username="$login" -d password="$password" -d qos_class="0" -d success_url="$url" -d error_url="$url" -d accept="submit" https://wireless.wifirst.net:8090/goform/HtmlLoginRequest

Le seul inconvénient c’est que ça ne me connecte pas au portail web, mais il ne m’est d’aucune utilité. Au final le script reste assez simple, il fallait juste trouver les bonnes informations. Si vous voulez faire un truc propre, je vous invite à consulter l’article de GuiGui’s show sur les portails captifs, qui explique le sujet plus en profondeur et l’importance de se déconnecter lorsqu’on éteint son ordinateur.

Inspiration

Commentaires

2 avis sur "Connexion automatique au portail captif WiFirst"

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *