Ich mache einige Nachforschungen über die Entwicklung von Wifi-Captive-Portalen.
Ich möchte die WiSPr-XML-Tags von einem FON-Authentifizierungs-Captive-Portal erfassen (meine Nachbarn haben das aktiv, ich habe auch einen Roaming-Account dafür).
Der Versuch, sich auf einem iPhone oder sogar einem Mac zu authentifizieren, schneidet nicht ab, da das Gerät die Captive Portal/WIPr-Tags erkennt und ein dediziertes Fenster/einen Mini-Browser ohne jegliche Steuerung öffnet; Der Versuch, die Seite auf einem Linux/*BSD zu öffnen, funktioniert möglicherweise nicht, da der Benutzeragent des Browsers / oder das Verhalten nicht als iPhone/Apple erkannt wird.
Auch das Sniffen der iPhone-Transaktion bringt nichts, da die Web-Anmeldeseite des Captive-Portals in https/TLS behandelt wird (z. B. auf der Leitung verschlüsselt).
Ich habe es auch mit sysdig
versucht in einem Linux, und traf offensichtlich wieder den Kopf auf die verschlüsselten Übertragungen.
wget
erzielt auch keine zufriedenstellenden Ergebnisse.
Was tun?
Akzeptierte Antwort:
Am Ende habe ich lynx
verwendet in einem FreeBSD-System; verwendet zunächst den -dump
Option, die erlaubt, die Weiterleitungen zu sehen, aber nur die Ausgabe und nicht den Inhalt; dann die -source
entdeckt Option, die die Quelle/HTML anzeigt und nicht versucht, sie zu rendern.
Ich habe auch die Option -useragent
verwendet vorzugeben, ich wäre ein iPhone, das die WISPr-Erkennung durchführt, und versuchte außerdem, eine der Seiten abzurufen, die das iPhone zu erhalten versucht, um if zu entdecken es handelt sich um ein Captive-Portal (http://www.apple.com/library/test/sucess.html).
Ich musste mich auch damit auseinandersetzen, dass das FON-Captive-Portal selbstsigniert ist (?), oder mein FreeBSD das zugrunde liegende SSL-Root-Zertifikat nicht kennt. (Ich habe nicht viel Zeit verloren, das zu verfolgen); Ich musste Lynx nur so konfigurieren, dass es selbstsignierte Zertifikate akzeptiert (wird die Frage später schreiben und hatte hier einen Link).
Die eigentlichen Befehle, die ich verwendet habe, waren also:
lynx -useragent=CaptiveNetworkSupport -dump http://www.apple.com/library/test/sucess.html
und obwohl das erste seinen Nutzen hat, interessierte mich mehr:
lynx -useragent=CaptiveNetworkSupport -source http://www.apple.com/library/test/sucess.html
Mit der letztgenannten Befehlszeile habe ich den HTML-Quelltext in seiner vollen Pracht mit den eingebetteten WISPr-Tags zurückgegeben.
Von 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
entnommen aus der erfassten Anmeldeseite:
<!-- 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>