Per poter accedere a Internet con la connessione Ariacom (a.k.a. AriaDSL) occorre ogni volta accedere a una pagina web di login - generata dall'antenna/router - in cui inserire username e password (peraltro uguali per tutti gli utenti). Questa procedura è piuttosto noiosa e tempo fa, in pieno spirito automatizzare a ogni costo, mi misi a studiare il problema, illudendomi che fosse di semplice e rapida soluzione.
La prima idea fu quella di inviare in POST i due parametri tramite uno script Ruby alla pagina di login:require 'net/http' require 'uri' res = Net::HTTP.post_form(URI.parse('http://login.ariadsl.it/login'), {'username'=>'ariadsl', 'password'=>''}) puts res.body
Purtroppo... invalid username or password.
La cosa richiedeva un'analisi più approfondita. Osservando il sorgente della pagina di login notai un interessante frammento legato alla submit del form:
function doLogin() { document.sendin.username.value = document.login.username.value; document.sendin.password.value = hexMD5('\231' + document.login.password.value + '\077\131\115\326...[SNIP]...\210\040\053\053\173\066\024'); document.sendin.submit(); return false; }
Quindi:
- la password apparentemente "vuota" è in realtà accompagnata da alcuni caratteri aggiunti proditoriamente dallo script
- la password viene convertita con una funzione di hash MD5 lato client prima di essere inviata al router
Senza darmi per vinto modificai la pagina salvata in modo che la action del form puntasse a una pagina PHP su WampServer creata appositamente per fare il dump dei parametri della request. Copiai il parametro 'password' e lo incollai nello script Ruby ma... invalid username or password.
Piuttosto perplesso esaminai di nuovo la pagina e... sorpresa (ma fino a un certo punto)! I caratteri di controllo presenti nella pagina erano diversi! Evidentemente vengono generati dal router di volta in volta.
La faccenda stava diventando sempre più interessante... (continua)
1 commento:
Che dire ! Post veramente interessante ed utilissimo..stavo per iniziare anch'io a creare uno script per l'autologin ma non immaginavo che sarebbe stato così complesso !
Posta un commento