So, my old laptop has been reactivated to a 16.04 LTS ubuntu release. When traveling, I frequently do use the Telekom Hotspot services, and given how I like using the Tor Browser (with some additional plugins just because I’m fed up with all the tracking) there’s a litle issue: I need to log in to a web page to start using the hotspots, but I cannot start browsing with the Tor browser before I have a network connection.
No big deal on a Mac with the wispr stuff to automatically fill out the captive portal pages for you, or at least automatically pop them up in a window separate from your browser. So, what are the options on Linux?
- Start firefox, first, log in to the hotspot, shut down firefox again to then start the Tor browser.
- Somehow work in a “-new-instance” argument into starting Tor Browser so you can actually do #1 but leave firefox open (which helps with stuff like posting on wordpress.)
- Use some entirely other browser unrelated to firefox as your second/first browser to log in to the hotspot
- Use a WISPR client like this one (though the page has issues as of writing this), but the whole approach seems like a security issue.
- log in to the hotspot on the command line
So, yes … Linux geeks chose option #5:
#!/usr/bin/perl use strict; use Term::ReadKey; my $username; my $password; print "username: "; $username = <>; chomp $username; ReadMode ('noecho'); print "password: "; $password = <>; chomp $password; ReadMode ('restore'); print "\n"; system ( "curl 'https://hotspot.t-mobile.net/wlan/rest/login' -H 'Host: hotspot.t-mobile.net' -H 'User-Agent: Mozilla/5.0 (X1 1; Ubuntu; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0' -H 'Accept: application/json, text/plain, */*' -H 'Accept-Lang uage: en-US,en;q=0.5' --compressed -H 'Content-Type: application/json;charset=utf-8' -H 'X-Hash: AjbCkwnbQWKb+eKqFSelsyugcyVt XiU1ZkUjnqDYhsA=' -H 'Referer: https://hotspot.t-mobile.net/TD/hotspot/Tank_Rast_Petro/en_GB/index.html' -H 'Content-Length: 57' -H 'Cookie: JSESSIONID=1111D92CBA6C27FE69D13F04F5CD4497.P3; POPUPCHECK=1496237026311; DT_H=NzY5OTk0MTgy' -H 'Connection: keep-alive' -d '{\"username\":\"$username\",\"password\":\"$password\"}' ");
Make sure you have the Term::ReadKey module installed. On Xenial you do:
apt install libterm-readkey-perl