SSH 接続できない環境でコマンド操作や作業を行うのに便利な PHP 製の Web Shell
共有サーバー等でシェルが実行できない環境用に作成
- Phar を使用した単一ファイルの設置で動作可能な Web Shell
ビルド済みの Phar ファイルを公開ディレクトリ内に設置するだけですぐに Web Shell が使用可能。 - ファイルのアップロードとダウンロード機能
現在のカレントディレクトリ内にドラック&ドロップでファイルをアップロード可能。
llコマンドを使用することでファイルのダウンロードリンクを表示します。 - ファイル編集機能
簡易編集機能に加えて、ファイルの最終更新日時を変更しない選択も可能。 - 簡易的なコマンド入力補正機能
config/config.inc.php にて追加可能。 - アクセス制御機能
簡易的なパスワード認証機能と、IP アドレスを使用したホワイトリスト方式のアクセス制御機能
リスト以外のアクセスに対しては HTTP ステータスコードの 404 をレスポンスします。 - シンタックスハイライト機能
highlight.jsを使用して自動判定でカラフルな出力結果を得られます。
llコマンドを使用してファイルのダウンロード
- ビルドされた単一ファイルを設置して使用する場合
build/ToyShell.phar.php をサーバー上の公開ディレクトリ内に設置してアクセス。 - 複数のファイルを設置して使用する場合
src/ 移行を公開ディレクトリ内に設置して shell.php にアクセス。
当プログラムが個別に認識するコマンドについて
clear
セッション変数のクリアを行います。
実際のシェルではclearコマンドのプロセスは発行されていません。cd
当プログラムの都合上、カレントディレクトリの記録をセッション変数内に格納するため、
cdコマンドで指定されたパスをリアルパスに変換したうえで記録します。
実際のシェルではcdコマンドのプロセスは発行されていません。ll
ls -laのエイリアスとして機能します。
ファイル名にリンクが付与されダウンロードすることが可能になります。
src/config/config.inc.php の設定項目について
| オプション | 型 | 概要 |
|---|---|---|
valid |
boolean | 簡易認証機能の ON/OFF |
user |
string | ユーザ名 |
password |
string | パスワード |
| オプション | 型 | 概要 |
|---|---|---|
valid |
boolean | アクセス制限機能の ON/OFF |
IPs |
array | 許可されている IP アドレスのリストを配列で格納 |
入力補完に使用キーにコマンド名称など、値に入力補完したいコマンドを設定
単一ファイルの実行には Phar を使用しています。
Phar については以下の URL を参照
PHP: Phar - Manual
https://www.php.net/manual/ja/book.phar.php
Phar ビルド環境の整備については以下を参照
Box Project
https://box-project.github.io/box2/
box.json があるディレクトリで以下のコマンドを実行
$ box build- PHP の外部プログラム実行関数が使用できなかった場合は
passthru,exec,shell_execの順に関数の定義確認を行います。 wgetを使用して最速に設置
$ wget https://raw.githubusercontent.com/ishibashiTokyo/ToyShell-PHP/master/build/ToyShell.phar.php -P {PATH}
- 自己削除機能
- 言語切り替え機能
- 2020/10/01 1.0.8
llコマンドで隠しファイルに対して編集、ダウンロードリンクが付与されない問題を修正
- 2020/05/22 1.0.7
- Pharの内部参照パスが正しく処理されていなかった問題を修正
- 2020/05/12 1.0.6
llコマンドでファイルに編集リンクを追加- ファイル編集機能を追加
- ファイル編集時に最終更新日時の変更を行わない機能を追加
- 2020/05/10 1.0.5
- ファイルのアップロード機能を追加
- 標準エラー出力を行うように修正
- 外部プログラム実行関数を複数から選択されるように修正
- 2020/05/05 1.0.4
- シンタックスハイライト機能を追加
- クラスの構造を変更
- ファイルダウンロード URL をパーセントエンコードするように修正
- 2020/05/04 1.0.3
llコマンドでファイル名にリンクの表示、ファイルのダウンロード機能を追加- コマンドの入力補完機能を追加
- HTML や CSS を修正
- 2020/05/01 1.0.2
cdコマンドの動作を修正
- 2020/04/28 1.0.1
- IP アドレスによるアクセス制御機能を追加
- アクセス制御の有効化、無効化機能を追加
- 2020/04/ 1.0.0
- 公開
