ホームページ >PHPフレームワーク >ThinkPHP >thinkphp5.0 および 5.1 の getshell 脆弱性を記録します。
以下は、thinkphp5.0 および 5.1 の getshell 脆弱性を紹介する thinkphp フレームワーク チュートリアル コラムです。困っている友人の役に立てば幸いです。
Web サイトは以前に取り消されました。当時、Web サイトは数日前に構築されたばかりでした。意図的にそれを行っている人はいないはずです。 getshell のバッチ スキャン。見つけやすくするため。オープン ソース システムの thinkcmf がブログを作成しました。thinkcmf は thinkphp5.0 フレームワークを使用して開発されているため、非常に優れています。thinkphp.cn にアクセスして調べてみました。 、権限昇格の脆弱性があることが判明しました。
libaray/think/app.php ファイル内のモジュール、コントローラー、メソッドは / で区別されます。
#この場合、コントローラーはフィルター処理されず、さまざまな関数が構築および実行されます# http://cmf.com をテストするためにローカルに仮想ホストを構築しました。
URL アクセスを構築します。phpinfo:http://cmf.com/index.php?s=portal/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1を直接出力できます。
その後、phpinfo を他の関数に置き換えることができます。たとえば、file_put_content 関数を使用してさまざまなマレーシア語やポニーのファイルを作成できます。
TP 公式修正 5.0 メソッドは次のとおりです。 think\Appクラスの
moduleメソッドでコントローラーを取得するには、コードの後に # を追加します。 ##
if (!preg_match('/^[A-Za-z](\w|\.)*$/', $controller)) { throw new HttpException(404, 'controller not exists:' . $controller); }
私が使用している thinkcmf のバージョンは: ThinkCMF 5.0.180901
その後、thinkcmf の公式 Web サイトを確認したところ、5.0.190111 に更新されており、最新バージョンはtp5.0 にもアップデートされました 最新バージョン 5.0.24 にはセキュリティアップデートが含まれており、もちろんそのような権限昇格の脆弱性はありません。
以上がthinkphp5.0 および 5.1 の getshell 脆弱性を記録します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。