Skip to content

ishibashiTokyo/php-ToyShell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Toy Shell

SSH 接続できない環境でコマンド操作や作業を行うのに便利な PHP 製の Web Shell
共有サーバー等でシェルが実行できない環境用に作成

機能

  • Phar を使用した単一ファイルの設置で動作可能な Web Shell
    ビルド済みの Phar ファイルを公開ディレクトリ内に設置するだけですぐに Web Shell が使用可能。
  • ファイルのアップロードとダウンロード機能
    現在のカレントディレクトリ内にドラック&ドロップでファイルをアップロード可能。
    llコマンドを使用することでファイルのダウンロードリンクを表示します。
  • ファイル編集機能
    簡易編集機能に加えて、ファイルの最終更新日時を変更しない選択も可能。
  • 簡易的なコマンド入力補正機能
    config/config.inc.php にて追加可能。
  • アクセス制御機能
    簡易的なパスワード認証機能と、IP アドレスを使用したホワイトリスト方式のアクセス制御機能
    リスト以外のアクセスに対しては HTTP ステータスコードの 404 をレスポンスします。
  • シンタックスハイライト機能
    highlight.jsを使用して自動判定でカラフルな出力結果を得られます。

スクリーンショット

llコマンドを使用してファイルのダウンロード

shell_screen

使い方

設置方法

  1. ビルドされた単一ファイルを設置して使用する場合
    build/ToyShell.phar.php をサーバー上の公開ディレクトリ内に設置してアクセス。
  2. 複数のファイルを設置して使用する場合
    src/ 移行を公開ディレクトリ内に設置して shell.php にアクセス。

予約コマンド

当プログラムが個別に認識するコマンドについて

  • clear
    セッション変数のクリアを行います。
    実際のシェルではclearコマンドのプロセスは発行されていません。
  • cd
    当プログラムの都合上、カレントディレクトリの記録をセッション変数内に格納するため、
    cdコマンドで指定されたパスをリアルパスに変換したうえで記録します。
    実際のシェルではcdコマンドのプロセスは発行されていません。
  • ll
    ls -laのエイリアスとして機能します。
    ファイル名にリンクが付与されダウンロードすることが可能になります。

設定

src/config/config.inc.php の設定項目について

simple_auth

オプション 概要
valid boolean 簡易認証機能の ON/OFF
user string ユーザ名
password string パスワード

IP_restriction

オプション 概要
valid boolean アクセス制限機能の ON/OFF
IPs array 許可されている IP アドレスのリストを配列で格納

command_list

入力補完に使用キーにコマンド名称など、値に入力補完したいコマンドを設定

ビルド

単一ファイルの実行には 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}

TODO

  • 自己削除機能
  • 言語切り替え機能

更新

  • 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
    • 公開

About

Web shell programmed in PHP.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published