PHP Shell: Unterschied zwischen den Versionen
Michi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Michi (Diskussion | Beiträge) |
||
Zeile 28: | Zeile 28: | ||
Erstellen eines Benutzers samt Passwort über folgenden URL. Bei Bedarf können auch mehrere Benutzer angelegt werden. | Erstellen eines Benutzers samt Passwort über folgenden URL. Bei Bedarf können auch mehrere Benutzer angelegt werden. | ||
<nowiki>http://</ | <nowiki>http://</nowiki><i>zielrechner</i>/phpshell-2.2/pwhash.php | ||
Als Ausgabe erscheint eine Zeile der folgenden Art: | Als Ausgabe erscheint eine Zeile der folgenden Art: |
Version vom 6. Mai 2011, 13:16 Uhr
PHP Shell ist ein PHP-Skript, das eine Shell-ähnliche Oberfläche zur Verfügung steht. Damit können neben Shellskripten auch die meisten auf Webrechnern installierten nicht-interaktiven Programme aufgerufen werden, allerdings keine interaktiven Programme (z. B. vi). Für letztere gibt es eine Erweiterung der PHP Shell.
Eine häufige Anwendung ist der Zugriff auf einen Rechner, bei dem entweder die Firewall den Zugang per SSH blockiert oder auf dem man selber keine Software im Dateisystem installieren kann, beispielsweise ein Webrechner.
Konzept
Zur Ausführung von Shell-Befehlen genügt ein PHP-fähiger Webbrowser. Dazu darf allerdings der (als veraltet geltende) Safe Mode von PHP nicht aktiviert sein.
PHP Shell stellt eine Befehlszeile zur Verfügung, die folgenden Beschränkungen unterliegt:
- Jeder Befehl muss ohne weitere Benutzereingabe auskommen. Interaktive Programme (z. B. vi oder top) lassen sich nicht bedienen.
- Jeder Befehl muss in eine Zeile passen - PHP Shell erkennt nicht, das ein Befehl noch fortgesetzt werden müsste. So kann beispielsweise eine for-Schleife nicht wie in einer normalen Shell auf mehreren Zeilen eingegeben werden.
- Jeder Befehl muss innerhalb einer bestimmten Zeitspanne abgearbeitet sein, üblicherweise innert 30 Sekunden. Diese Beschränkung ist allerdings nicht durch die PHP Shell bedingt, sondern durch den Webserver und PHP. Die entsprechende Beschränkung kann im Apache HTTP Server über die Direktive "Timeout" und in PHP über die Einstellung "max_execution_time" (in der Datei "php.ini") verändert werden.
Die Befehle werden unter der UID und GID des Webservers ausgeführt, wie sich durch Aufruf von id sehen lässt.
PHP Shell bietet eine einfache History-Funktion sowie einen einfachen Texteditor, der wie folgt aufgerufen werden kann:
$ editor file.txt
Installation
Herunterladen der PHP Shell.
Übertragen der Datei "phpshell-2.2.tar.gz" ins Webverzeichnis auf den Zielrechner und dort entpacken.
# tar xzf phpshell-2.2.tar.gz
Erstellen eines Benutzers samt Passwort über folgenden URL. Bei Bedarf können auch mehrere Benutzer angelegt werden.
http://zielrechner/phpshell-2.2/pwhash.php
Als Ausgabe erscheint eine Zeile der folgenden Art:
benutzername = "sha1:xyxyxyxy:abcdefghijklmnopqrstuvwxyzabcdefghijklmn"
Diese Zeile muss in die Datei "config.php" in den Abschnitt "[users]" eingefügt werden.
# vi phpshell-2.2/config.php [users] benutzername = "sha1:xyxyxyxy:abcdefghijklmnopqrstuvwxyzabcdefghijklmn"
PHP Shell kann nun über folgenden URL aufgerufen werden.
<nowiki>http://zielrechner/phpshell-2.2/phpshell.php
Als zusätzlicher Schutz sollte das Verzeichnis, in dem sich die Datei "phpshell.php" befindet, umbenannt und mittels .htaccess geschützt werden.
Konfiguration
In der Datei "config.php" können auch Shell-Aliase sowie ein Heimverzeichnis für PHP Shell festgelegt werden.
Weblinks
Herausgeber | Sprache | Webseitentitel | Anmerkungen |
---|---|---|---|
Sourceforge | eng | PHP Shellwbm |