diZrupt0r Skrevet 5. september 2006 Del Skrevet 5. september 2006 (endret) javaprogrammet jeg lager skal logge inn på denne websiden: https://www.mikrotik.com/client/index.php det fungerte tidligere, men nå har mikrotik 'oppgradert' sidene sine, og da fungerer ikke den forrige login-logikken (enkel POST-ing av brukernavn/passord) hvis man studerer kildekoden så ser man at det kjøres en javascript-funksjon på bla. passordet og en unik verdi før man kan sende inn POST'en til sida. dette er funksjonen som kjøres når sida postes: onsubmit="return hash('uni_id', 'passwd', 'real_pass2'); denne funksjonen må altså returnere true før man kan submitte. Den unike verdien ('uni_id') er unik for hver gang man reloader sida kildekoden til funksjonen: function hash(md5var, passvar, real_pass) { // hash funkcija var uni_id = document.getElementById( md5var ); var passwd = document.getElementById( passvar ); var realpass = document.getElementById( real_pass ); if (uni_id) { if (passwd) { normalstring = uni_id.value + passwd.value; hashstring = hex_md5(normalstring); realpass.value = hashstring; return true; } else { alert("Incorrect password!"); return false; } } else { alert("Uni_id=null"); return false; } } så langt har jeg kommet: - først henter jeg en blank login-side uten noe posting, og henter du den unike-iden fra denne. - deretter forsøker jeg å poste de variablene jeg har, men det ser ikke ut til at jeg får til å poste slik at javascriptfunksjonen returnerer true.. en bit av kildekoden: String html = ""; // Construct data String data = URLEncoder.encode(usernameField, "UTF-8") + "=" + URLEncoder.encode(username, "UTF-8"); data += "&" + URLEncoder.encode(passwordField, "UTF-8") + "=" + URLEncoder.encode(password, "UTF-8"); data += "&" + URLEncoder.encode("uni_id", "UTF-8") + "=" + URLEncoder.encode(uni_id, "UTF-8"); // login URL url = new URL(urlLogin); URLConnection conn = url.openConnection(); conn.setDoOutput(true); OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); wr.write(data); wr.flush(); // Get the response BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; while ((line = rd.readLine()) != null) { // Process line... //System.out.println(line); html += line; } har noen en smart idé på hvordan man skal få logget inn skikkelig? og ja, jeg har riktig brukernavn/passord Endret 5. september 2006 av diZrupt0r Lenke til kommentar
diZrupt0r Skrevet 5. september 2006 Forfatter Del Skrevet 5. september 2006 jeg løste problemet, måtte kjøre en md5 funksjon på den unike id'en og brukernavnet for deretter å poste denne verdien i tillegg til de andre loginopplysningene. systemet er slik for å forhindre bruteforceangrep Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå