Je fais des recherches sur le développement de portails captifs wifi.
Je voudrais capturer les balises XML WiSPr à partir d'un portail captif d'authentification FON (mes voisins ont cela actif, j'ai aussi un compte itinérant pour cela).
Essayer de s'authentifier dans un iPhone ou même un Mac ne suffit pas, car l'équipement détecte le portail captif/balises WIPr, et ouvre une fenêtre/mini-navigateur dédié sans aucun contrôle; essayer d'ouvrir la page sur un Linux/*BSD peut ne pas fonctionner car l'agent utilisateur du navigateur / ou le comportement ne sera pas reconnu comme iPhone/Apple.
Renifler la transaction iPhone ne suffit pas non plus, car la page de connexion Web du portail captif est gérée en https/TLS (par exemple, elle est cryptée sur le fil).
J'ai aussi essayé sysdig
dans un Linux, et évidemment retaper la tête sur les transmissions cryptées.
wget
n'obtient pas non plus de résultats satisfaisants.
Que faire ?
Réponse acceptée :
J'ai fini par utiliser lynx
dans un système FreeBSD ; initialement utilisé le -dump
option, qui permettait de voir les redirections, mais uniquement la sortie et non le contenu; puis découvert le -source
option, qui affiche la source/HTML et n'essaie pas de le rendre.
J'ai aussi utilisé l'option -useragent
prétendre que j'étais un iPhone faisant la découverte WISPr, et j'ai également essayé d'obtenir l'une des pages que l'iPhone essaie d'obtenir pour découvrir si il s'agit d'un portail captif (http://www.apple.com/library/test/sucess.html).
J'ai également dû faire face au fait que le portail captif FON est auto-signé (?), Ou que mon FreeBSD ne connaît pas le certificat racine SSL sous-jacent. (je n'ai pas perdu beaucoup de temps à tracer cela); Je devais juste configurer lynx pour accepter les certificats auto-signés (j'écrirai la question plus tard et j'avais un lien ici).
Ainsi, les commandes réelles que j'ai utilisées étaient :
lynx -useragent=CaptiveNetworkSupport -dump http://www.apple.com/library/test/sucess.html
et cependant, bien que le premier ait son utilité, celui qui m'intéressait le plus était :
lynx -useragent=CaptiveNetworkSupport -source http://www.apple.com/library/test/sucess.html
En utilisant cette dernière ligne de commande, j'ai restitué la source HTML dans toute sa splendeur avec les balises WISPr intégrées.
De man lynx
-dump dumps the formatted output of the default document or those specified on the command line to standard output. Unlike interactive mode, all documents are processed. This can be used in the following way: lynx -dump http://www.subir.com/lynx.html Files specified on the command line are formatted as HTML if their names end with one of the standard web suffixes such as ".htm" or ".html". Use the -force_html option to format files whose names do not follow this convention. -source works the same as dump but outputs HTML source instead of formatted text. For example lynx -source . >foo.html generates HTML source listing the files in the current directory. Each file is marked by an HREF relative to the parent directory. Add a trailing slash to make the HREF's relative to the current directory: lynx -source ./ >foo.html
extrait de la page de connexion capturée :
<!-- WISPr message -->^M
<span class="displayNone"><!--<?xml version="1.0" encoding="UTF-8"?>^M
<WISPAccessGatewayParam xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.acmewisp.com/WISPAccessGatewayParam.xsd">^M
<Redirect>^M
<AccessProcedure>1.0</AccessProcedure>^M
<LoginURL>https://xxxx/captive/noswifi?hmac=xxxx&res=notyet&uamip=xxxx&uamport=80&userurl=&challenge=xxxxxxe&nasid=BC-14-01-XX-XX-XX&mac=00-15-AF-XX-XX-XX</LoginURL>^M
<AbortLoginURL>http://xxxx:80/captive/logoff</AbortLoginURL>^M
<MessageType>100</MessageType>^M
<ResponseCode>0</ResponseCode>^M
<AccessLocation>FonZON:PT</AccessLocation>^M
</Redirect>^M
</WISPAccessGatewayParam>-->^M
</span>