# Javascript Befehl/Funktion einer fremden Website aufrufen?



## strWinnie (27. November 2010)

Liebe Javascript-Experten,

während einer mehrstündigen Google-Suche nach der Lösung für ein bestimmtes Problem bin ich immer wieder auf das tutorials.de-Forum gestoßen. Da ich bislang aber keine Antwort auf meine Frage gefunden habe, poste ich diese nun einfach hier und hoffe, dass mir jemand einen Tipp geben kann.

Auf einer fremden Website kann ich als User auf einen Button klicken, was dazu führt, dass eine txt-Datei erzeugt wird, die ich dann wiederum wenig später über einen anderen Button herunterladen kann.
Meine Frage ist lediglich, ob ich dieses erste Button-Drücken irgendwie automatisieren kann, indem ich den Javascript-Befehl z.B. direkt in die Adresszeile des Browsers mit eingebe, oder über ein zwischengeschaltetes HTML-file mit dem notwendigen Code (?) ...

Die entscheidende Passage im Quellcode des Buttons auf der besagten Seite lautet wie folgt:

<button name="blabla" type="button" class="blabla" onclick="javascript:blabla.blabla();">

Meiner Einschätzung nach müsste man dieses onclick event "einfach" direkt ansteuern, wodurch das Drücken des Buttons entfiele.

Geht das?

Leider habe ich absolut null Erfahrung mit Javascript. Meine Suchen haben mich zu diversen Codeschnipseln geführt, aber ich habe all diese so verstanden, dass man sie in seine EIGENEN Codes/Seiten integriert.
Daher gehe ich fast schon davon aus, dass es keine Lösung für mein Problem gibt, möchte aber nichts unversucht lassen. Eine "Nein - geht nicht"-Antwort würde mich auch schon weiter bringen, da ich mir dann wenigstens weitere Suchen sparen könnte.

Vielen Dank fürs Lesen und hoffentlich auch Helfen.

Viele Grüße,
Winnie


----------



## harryman (28. November 2010)

Hi,

ich weiss zwar nicht 100%-ig, was du machen willst.
Aber generell ist es so: Wenn du das javascript als onload an das body-Tag schreibst, z.B.
<body onload="javascript:blabla.blabla();">, dann wird das Script beim Laden ausgeführt, ohne einen zusätzlichen Knopf zu drücken.


----------



## vandamp (28. November 2010)

hi,
ich glaub er will ein Javascript von einer fremden Webseite in der Adresszeile ausführen.
So was nennt man doch XSS, wobei ich dir nicht unterstelle, dass du etwas böses vor hast.

In der Adresszeile kannst du z.b. so was ausführen javascript:alert("Hallo User"), aber nicht Scripts von fremden Webseiten.

Du kannst dir allerdings mal im Quelltext anschauen, was diese Funktion genau macht, die du starten willst.
Wenn sie offensichtlich irgendeinen ka ajax request oder so an eine Datei schickt, kannst du versuchen diesen Link so nach zu bauen, dass du ihn aufrufen kannst.


----------



## strWinnie (28. November 2010)

Hi Harry,

vielen Dank für Deine Antwort!
Könntest Du Dein Beispiel vielleicht noch durch eine willkürliche Beispiel-URL ergänzen?
Reicht es, Deinen Code dann einfach später in eine Textdatei zu kopieren, als .html zu speichern und dann mit dem Browser zu öffnen?

Gestern hatte ich übrigens noch vergessen zu erwähnen, dass folgender Trick, den ich im Internet fand, nicht funktioniert hat. Dort wurde einem User geraten, den Javascript-Befehl der URL voranzustellen und das Ganze dann in die Browser-Adresszeile einzugeben.

javascript:blabla.blabla();location.href='https://hierdieadresse.com';

Gruß,
strWinnie


----------



## strWinnie (28. November 2010)

vandamp hat gesagt.:


> hi,
> ich glaub er will ein Javascript von einer fremden Webseite in der Adresszeile ausführen.
> So was nennt man doch XSS, wobei ich dir nicht unterstelle, dass du etwas böses vor hast.



Hi vandamp,

auch Dir vielen Dank! Ich glaube, jetzt kommen wir der Sache näher. Von Cross-Site Scripting habe ich schon gehört, aber wusste nicht, dass dies nun mein Vorhaben ist.

Im Quelltext habe ich die Funktion gefunden. In ein paar If-Statements verschachtelt versteckt sich folgendes:
Funktionsname.requestDownload($("#download****m").serialize());

Ist das so ein ajax request?

Ich glaube, ich komme nicht umhin, Javascript zu lernen, wenn ich das Problem knacken möchte. Solange muss ich halt leider weiterhin de Button anklicken.

Vielen Dank an Alle!
strWinnie


----------



## vandamp (28. November 2010)

function test() {
			$.get("ajax.php",{ action : "createfile", id : $('#name).val()}, function(response){
$("#downloadlink").val(response);
			})};


die Funktion Test ruft hier die Datei ajax.php mit ein paar Parametern auf.

Die gleiche Aktion könnte man mit "ajax.php?action=createfile&id=10" erreichen.

Ich schätze zwar so einfach geht es nicht aber ja dies nur so als Beispiel.


----------

