p0wny@shell:~# -- Einzeldatei-PHP-Shell

p0wny@shell:~# ist eine sehr einfache, aus einer einzelnen Datei bestehende PHP-Shell. Sie kann verwendet werden, um bei einem Pentest einer PHP-Anwendung schnell Befehle auf einem Server auszuführen. Verwende sie mit Vorsicht: Dieses Skript stellt ein Sicherheitsrisiko für den Server dar.
Funktionen:
- Befehlsverlauf (mit den Pfeiltasten
↑ ↓)
- Autovervollständigung von Befehls- und Dateinamen (mit der
Tab-Taste)
- Im entfernten Dateisystem navigieren (mit dem Befehl
cd)
- Eine Datei auf den Server hochladen (mit dem Befehl
upload <destination_file_name>)
- Eine Datei vom Server herunterladen (mit dem Befehl
download <file_name>)
WARNUNG: DIESES SKRIPT IST EIN SICHERHEITSLOCH. LADE ES NICHT AUF EINEN SERVER HOCH, ES SEI DENN, DU WEISST, WAS DU TUST!

Demo mit Docker:
docker build -t p0wny .
docker run -it -p 8080:8080 -d p0wny
# open with your browser http://127.0.0.1:8080/shell.php
Mitwirken
Fragen
Wenn du eine Frage hast, kannst du:
Fehler
Bitte eröffne ein Issue auf GitHub mit so vielen Informationen wie möglich, wenn du einen Fehler gefunden hast:
- Dein Betriebssystem / deine Linux-Distribution (und deren Version)
- Die PHP-Version, die du verwendest (Beispiel:
PHP-FPM 8.1, Apache mod_php 7.4,...)
- Den Webserver, den du verwendest, und dessen Version (Beispiel:
Nginx 1.23, Apache 2.4.55,...)
- Alle Protokolle und Meldungen, die von der Software ausgegeben werden
- usw.
Pull Requests
Bitte ziehe in Betracht, einen Fehler zu melden, bevor du mit der Arbeit an einer neuen Funktion beginnst; so können wir die beste Vorgehensweise besprechen. Es ist offensichtlich unnötig, wenn du nur einen Tippfehler oder kleine Fehler im Code beheben möchtest.
Unterstütze dieses Projekt
Möchtest du dieses Projekt unterstützen?
Änderungsprotokoll
- v2023.08.10:
- p0wny@shell mit PHP 5.3 kompatibel machen (@FrancoisCapon, #38)
- v2023.05.28:
- Alle Datenfelder als base64 kodieren, um Kodierungsfehler zu vermeiden, insbesondere unter Windows (@cli-ish, #8, #35)
- v2023.05.22:
- Benutzername und Hostname im Prompt anzeigen (@cli-ish, #33, #7)
- v2023.05.10:
- Verschiedene Ausführungsfunktionen (
exec, shell_exec, system, passthru, popen, proc_open) ausprobieren, um Befehle auszuführen und so deaktivierte Funktionen zu umgehen (@cli-ish, #31, #32)
- v2023.02.27:
- Terminalfenster in der Größe veränderbar machen (@FrancoisCapon, #27)
- v2023.02.13:
- Größere Terminalgröße auf großen Bildschirmen (@psyray, #26)
- Kein horizontales Scrollen mehr auf kleinen Bildschirmen (@flozz)
- v2022.09.19:
- Pfad im Befehl
cd erweitern (cd ~, cd ~username,...)
- Beim Ausführen von cd ohne Argument ins Home-Verzeichnis wechseln.
- → Danke an @FrancoisCapon für den Vorschlag (#25)
- v2021.01.24:
- Stilverbesserungen:
- Schönere Scrollbar bei WebKit (@nakamuraos)
- Ein kleineres Logo auf Mobilgeräten anzeigen (@nakamuraos)
- Ergonomische Verbesserungen:
- Das Befehlsfeld fokussieren, wenn auf die Seite geklickt wird (@nakamuraos)
- Den Cursor beim Navigieren im Verlauf ans Ende des Befehlsfelds setzen (@nakamuraos)
- v2019.06.07:
- Den Befehl
clear hinzufügen, um das Terminal zu leeren (@izharaazmi #12)
- v2018.12.15:
- Funktion zum Hoch- und Herunterladen von Dateien (@Oshawk #5)
- v2018.06.01:
- Autovervollständigung von Befehls- und Dateinamen (@lo001 #2)
- Anpassung an mobile Geräte (responsiv) (@lo001 #2)
- Verbesserte Behandlung von stderr (@lo001 #2)
- v2018.05.30:
- ES5-Kompatibilität (@lo00l #1)
- Abhängigkeit von JQuery entfernt (@lo00l #1)
- Befehlsverlauf mit den Pfeiltasten (@lo00l #1)
- Das Befehlsfeld beim Drücken der Tab-Taste fokussiert halten
- v2017.10.30:
- CSS: ungültige Farbe behoben
- v2016.11.10: