jagozh
Goto Top

Automatisches Login-Skript für Webseite

Hallo zusammen,

ich weiss, das Thema wurde schon öfter diskutiert, dennoch gelingt es mir nicht, mich via eigenem html-Code auf folgender Seite automatisch anzumelden:

www.secret.de

Mein Code ist der folgende:

<html>
<head>

<title>Anmeldung</title>

<script language="javascript">

function anmeldenSecret(){
document.loginbox.action="https://www.secret.ch"
document.loginbox.submit();
}

</script>


</head>

<body onload="anmeldenSecret()">

<form method="POST" name="loginbox" id="loginbox" action="/session">

<input type="hidden" name="email_or_nickname" value="meinNick">

<input type="hidden" name="password" value="meinPW">

<input type=submit value="OK">

</form>

</body>

</html>

Hat jemand eine Idee, warum das nicht klappt? Die Seite wird aufgerufen, die Felder ausgefüllt, aber der Submit funktioniert nicht face-sad

Thx für ev. Antworten!
Jago

Content-Key: 297558

Url: https://administrator.de/contentid/297558

Printed on: April 24, 2024 at 12:04 o'clock

Member: IrunGoldstein
IrunGoldstein Feb 27, 2016 at 12:40:51 (UTC)
Goto Top
Hi Jago,

bin zwar selber kein JS crack aber probiere es mal mit:


<script>
...
document.getElementById("loginbox").submit();  
</script>

statt:

<script>
...
document.loginbox.submit();
...
<script>

grüße
Mitglied: 114757
114757 Feb 27, 2016 updated at 13:51:07 (UTC)
Goto Top
Mon Jago
neee, so leicht kann das nie und nimmer funktionieren, da deine "hüstel"-Seite erstens https verwendet und den Referer prüft und zweitens für jeden Login ein eindeutiges Token (authenticity_token) generiert was ebenfalls übermitttelt werden muss. Der Login wird so in der Art also nicht funktionieren, da müsstest du wesentlich mehr Aufwand treiben und das Token für jeden Login erst von der Seite auslesen.

Du kannst es mit diesem Powershell-Skript mal versuchen, das sollte die für diese Site benötigten Schritte beinhalten

# Useragent definieren
$useragent = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0'  

# Login-Seite abrufen um das Token auszulesen
$request = iwr -Uri 'https://www.secret.ch/session/new' -SessionVariable $session -UserAgent $useragent  

# Post-Body Hashtable für die Übermittlung zusammenstellen / Benutzername und Passwort anpassen
$body = @{
    utf8 = '✓'  
    authenticity_token = ($request.AllElements | ?{$_.Name -eq 'authenticity_token'} | select -Expand Value)  
    referrer = '/session/new'  
    email_or_nickname = 'user123'  
    password = 'Passw0rd'  
    commit = 'Login'  
}

# Login durchführen (Daten via POST-Request versenden)
$result = iwr -Uri 'https://www.secret.ch/session' -Method Post -WebSession $session -Body $body -UserAgent $useragent  

# HTML des Login-Ergebnisses ausgeben
$result.Content

Gruß jodel32
Member: JagoZh
JagoZh Feb 28, 2016 at 14:29:17 (UTC)
Goto Top
Danke für deine Antwort Jodel! Damit wurde mir das Vorgehen doch etwas klarer. Leider kann ich es so aber nicht direkt nutzen, da ich unter Windows nur Powershell 2.0 habe face-sad
Und ja, die Seite mag dubios sein, aber ich wollte sie als Test für mich nutzen face-wink

Jago
Mitglied: 114757
114757 Feb 28, 2016 updated at 14:57:20 (UTC)
Goto Top
Leider kann ich es so aber nicht direkt nutzen, da ich unter Windows nur Powershell 2.0 habe
Das ist egal, es sollte ja nur das generelle Vorgehen zeigen. Unter PS 2.0 kannst du das selbe aber auch mit einem System.Net.Webrequest machen. User @colinardo hat hier schon mal ein Beispiel dazu gepostet.
Powershell-Script, das sich auf Website anmeldet und dann eine andere speichert

Das genannte lässt sich aber auch mit PHP und anderen Sprachen realisieren. Aber wie gesagt ist das meist nie 1 zu 1 auf andere Logins übertragbar weil jeder seinen Login anderst absichern kann und das auch tut.
Denn obiges Beispiel ist eines der absolut primitivsten die ich kenne. Bei Google /Facebook und Co. ist das wesentlich komplizierter, aber dort nutzt man ja vorzugsweise deren APIs zum Login (oAuth).