Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

wie erstelle ich eine perl-shell in einem cgi-script

Diskussion: wie erstelle ich eine perl-shell in einem cgi-script im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige hallo ich möchte bei mir auf der homepage ein script haben, mit dem ich sozusagen eine shell auf dem ...

Antwort
Alt 13.10.02, 16:57   #1 (permalink)
 
Registriert seit: 13.10.02
honkman Leistung: Facit NTK
Likes: 0
Standard wie erstelle ich eine perl-shell in einem cgi-script

Anzeige

hallo

ich möchte bei mir auf der homepage ein script haben, mit dem ich sozusagen eine shell auf dem server aufrufen kann.

kann mir einer sagen, wie ich das mit perl umsetzen kann??

mfg

honkman ist offline   Mit Zitat antworten
Alt 14.10.02, 18:23   #2 (permalink)
 
Registriert seit: 07.12.01
sticky bit Leistung: Facit NTK
Likes: 0
Standard

Eine "richtige" Shell wirst du über das CGI so nicht hinkriegen weil HTTP packetswitched ist su kannst also nur immer Befehl absetzten Ausagbe empfangen und wieder von vorne.
Und dann hast du da mehrere Möglichekeiten, zum einem, wenn es wirklich PERL-Code sein soll der verarbeitet wird mit eval($perl_code), das nimmt den PERL-Code (hier in $perl-code) entgegen und führt diesen aus (sofern er korrekt ist *g*). Rückgabewert von eval() ist, sofern benötigt, bei einem Fehler undef wobei in $@ auf die Fehlermeldung zugegriffen werden kann und wenn alles glatt ging liefert es den Wert des letzten Ausdrucks im gegebenen Code zurück.
Um an die Shell des Systems zu kommen fallen mir 4 Möglichkeiten ein, zum ersten mal mit Pipes, dh. du öffnest ein Handle, so ähnlich wie für ein File nur mit ner Pipe als Moduszeichen und statt nem Dateinamen mit dem eines Programms (gff. mit Pfad wenn nicht in $PATH oder ein Shell interner Befehl), also ungefähr so, open($pipe_hnd, "|$command"). Du hast dann nen gewöhlichen Handle $pipe_hnd auf den du schreiben kannst, also dem $command was aufs STDIN schicken kannst und von dem du lesen kannst, also den STDOUT des Programms empfangen.
Als nächstes wären da die Backticks, also Shell-like, $command_out = `$command`, führt ganz einfach $command aus (wie oben Programmename oder Pfad u. U. Shell interner Befehl, cd z. B.), das Ergebnis wird in dem o. g. Bsp. zusätzlich in $command_out aufgefangen, ist aber nicht nötig, wenn mans ned braucht einfach die Zuweisung weglassen.
Dann wäre da system($command), das veranlasst wiederrum dass $command ausgeführt wird (auch hier wieder Programmname, Pfrad, Shellinterna) und der STDOUT von $command direkt auf den STDOUT von dem Skript kommt, also der Befehl "sichtbar" im Gegensatz zu den Backticks ausgeführt wird.
Als 4. wäre da noch exec($command), das führt dazu, dass der Prozess des Skriptes durch den von $command ersetzt wird, d.h. exec() kehrt nie zurück und das Skript ist danach zu Ende, es erfolgt nur noch die Ausgabe von dem Programm in $command, was wiederum ein Programmname, ggf. mit Pfad oder ein Shellinterna sein darf.
Allerdings möchte ich noch darauf hinweisen, dass du damit auf dem Server ein riesen Sicherheitloch schaffst, wenn du sowas wirklich einsetzten willst, eine "richtige" Shell z. B. mit SSH wäre wohl eher anzuraten, zumal du dir schon alleine wegen der fehlenden Interaktivität schnell in den Hintern beissen wirst, wnn du es erst mal geschafft hast, einen Prozess zu erzeugen, der aus was für Gründen auch immer nicht zurückkehrt und du in nem anderen Browserfenser mittels ps und kill den erst mal wieder abschiessen musst, weil du merkst, dass du ja kein Strg+C schicken kannst...
sticky bit ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 15.10.02, 11:35   #3 (permalink)
Themenstarter
 
Registriert seit: 13.10.02
honkman Leistung: Facit NTK
Likes: 0
Standard danke

hi

danke für deine antwort; werd es mal trotzdem ausprobieren; da der provider kein ssh anbietet. will ja auch nichts schlimmes drauf anstellen

mfg
honkman
honkman ist offline   Mit Zitat antworten
Alt 15.10.02, 11:49   #4 (permalink)
Senior Member
 
Registriert seit: 02.10.01
DelumaX Leistung: Facit NTK
DelumaX eine Nachricht über ICQ schicken
Likes: 0
Standard

Es geht nicht darum was du anstellen willst, sondern darum was andere unter Umständen anstellen würden...

SSH wird auch nicht von deinem Provider angeboten sondern von deinem Server. Die Verbindung läuft dann über einen SSH-Client (Windows) bzw. eine Shell und ist verschlüsselt. Dafür brauchst du keine HP.
DelumaX ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » wie erstelle ich eine perl-shell in einem cgi-script
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
wie erstelle ich eine Batchdatei mit linux whoopy84 Linux/UNIX 3 30.09.09 16:21
Shell Script Probleme Serow Linux/UNIX 12 10.07.08 23:56
Wie erstelle ich eine eigene Hompage? Nicmon (Web-) Design und webbasierte Sprachen 27 30.05.06 20:56
Wie erstelle ich eine Methoden-Datei [*.mbs] für den Picture Publisher? PikJoker Applikationen 0 05.01.04 21:38
Wie erstelle ich eine HP-WEBCAM (STREAM) connect (Web-) Design und webbasierte Sprachen 3 14.11.03 21:44


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61