p0wny@shell:~# -- Однофайловая PHP-оболочка

p0wny@shell:~# — это очень простая однофайловая PHP-оболочка. Она позволяет быстро выполнять команды на сервере при пентестинге PHP-приложений. Используйте её с осторожностью: этот скрипт представляет угрозу безопасности сервера.
Возможности:
- История команд (с помощью клавиш со стрелками
↑ ↓)
- Автодополнение имён команд и файлов (с помощью клавиши
Tab)
- Навигация по удалённой файловой системе (с помощью команды
cd)
- Загрузка файла на сервер (с помощью команды
upload <destination_file_name>)
- Скачивание файла с сервера (с помощью команды
download <file_name>)
ПРЕДУПРЕЖДЕНИЕ: ЭТОТ СКРИПТ — БРЕШЬ В БЕЗОПАСНОСТИ. НЕ ЗАГРУЖАЙТЕ ЕГО НА СЕРВЕР, ЕСЛИ ВЫ НЕ ПОНИМАЕТЕ, ЧТО ДЕЛАЕТЕ!

Демонстрация с 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
Участие в разработке
Вопросы
Если у вас есть вопросы, вы можете:
Баги
Пожалуйста, откройте issue на GitHub с как можно большим количеством информации, если вы нашли ошибку:
- Ваша операционная система / дистрибутив Linux (и его версия)
- Используемая вами версия PHP (например:
PHP-FPM 8.1, Apache mod_php 7.4,...)
- Используемый вами веб-сервер и его версия (например:
Nginx 1.23, Apache 2.4.55,...)
- Все логи и сообщения, выводимые программным обеспечением
- и т. д.
Pull requests
Пожалуйста, перед началом работы над новой функцией рассмотрите возможность сообщить об ошибке; это позволит нам обсудить наилучший способ её реализации. Разумеется, это необязательно, если вы просто хотите исправить опечатку или небольшие ошибки в коде.
Поддержать этот проект
Хотите поддержать этот проект?
История изменений
- v2023.08.10:
- Совместимость p0wny@shell с PHP 5.3 (@FrancoisCapon, #38)
- v2023.05.28:
- Кодирование всех полей данных в base64 для предотвращения ошибок кодировки, особенно в Windows (@cli-ish, #8, #35)
- v2023.05.22:
- Отображение имени пользователя и имени хоста в приглашении (@cli-ish, #33, #7)
- v2023.05.10:
- Использование различных функций выполнения (
exec, shell_exec, system, passthru, popen, proc_open) для запуска команд в обход отключённых функций (@cli-ish, #31, #32)
- v2023.02.27:
- Возможность изменения размера окна терминала (@FrancoisCapon, #27)
- v2023.02.13:
- Увеличенный размер терминала на больших экранах (@psyray, #26)
- Отсутствие горизонтальной прокрутки на маленьких экранах (@flozz)
- v2022.09.19:
- Раскрытие пути в команде
cd (cd ~, cd ~username,...)
- Переход в домашний каталог при запуске
cd без аргумента.
- → Спасибо @FrancoisCapon за предложение (#25)
- v2021.01.24:
- Улучшения стиля:
- Улучшенный внешний вид полосы прокрутки в webkit (@nakamuraos)
- Отображение меньшего логотипа на мобильных устройствах (@nakamuraos)
- Эргономические улучшения:
- Фокусировка поля ввода команды при клике по странице (@nakamuraos)
- Перемещение курсора в конец поля ввода команды при навигации по истории (@nakamuraos)
- v2019.06.07:
- Добавлена команда
clear для очистки терминала (@izharaazmi #12)
- v2018.12.15:
- Функция загрузки и скачивания файлов (@Oshawk #5)
- v2018.06.01:
- Автодополнение имён команд и файлов (@lo001 #2)
- Адаптация под мобильные устройства (адаптивная вёрстка) (@lo001 #2)
- Улучшенная обработка stderr (@lo001 #2)
- v2018.05.30:
- Совместимость с ES5 (@lo00l #1)
- Удалена зависимость от JQuery (@lo00l #1)
- История команд с помощью клавиш со стрелками (@lo00l #1)
- Сохранение фокуса на поле ввода команды при нажатии клавиши Tab
- v2017.10.30:
- CSS: исправлен недопустимый цвет
- v2016.11.10: