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
貢献
質問
質問がある場合は、次の方法があります:
バグ
バグを見つけた場合は、できるだけ多くの情報を添えてGitHubでIssueを開いてください:
- お使いのオペレーティングシステム / Linuxディストリビューション(およびそのバージョン)
- 使用しているPHPのバージョン(例:
PHP-FPM 8.1、Apache mod_php 7.4、...)
- 使用しているWebサーバーとそのバージョン(例:
Nginx 1.23、Apache 2.4.55、...)
- ソフトウェアが出力したすべてのログとメッセージ
- など
プルリクエスト
新機能の作業を始める前に、バグを報告することを検討してください。それにより、最適な実装方法について話し合うことができます。単にコード内のタイプミスや小さなエラーを修正したいだけなら、これは明らかに不要です。
このプロジェクトを支援する
このプロジェクトを支援してみませんか?
変更履歴
- v2023.08.10:
- p0wny@shell を PHP 5.3 と互換性のあるものにする(@FrancoisCapon、#38)
- v2023.05.28:
- エンコードエラーを避けるため、特にWindows上で、すべてのデータフィールドをbase64としてエンコードする(@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:
- v2016.11.10: