23
悪用可能なPHP関数
ロックされています。質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答や相互作用を受け入れていません。 任意のコード実行に使用できる関数のリストを作成しようとしています。目的は、ブラックリストに登録するか、そうでなければ許可しない必要がある関数をリストすることではありません。むしろ、侵入先のサーバーでバックドアを検索するときに役立つ赤旗キーワードのgrepリストを作成しておくとよいでしょう。 アイデアは、c99やr57などの「Webシェル」スクリプトなど、多目的の悪意のあるPHPスクリプトを作成する場合、比較的小さな関数セットの1つまたは複数を使用する必要があるということです。ユーザーが任意のコードを実行できるようにするために、ファイルのどこかにあります。それらの関数を検索することで、何万ものPHPファイルの干し草の山を、より詳細な調査を必要とする比較的小さなスクリプトのセットに、より迅速に絞り込むことができます。 明らかに、たとえば、次のいずれも悪意のある(またはひどいコーディング)と見なされます。 <? eval($_GET['cmd']); ?> <? system($_GET['cmd']); ?> <? preg_replace('/.*/e',$_POST['code']); ?> など。 先日、危険にさらされたWebサイトを検索しましたpreg_replaceが、/eフラグの使用によって危険にさらされる可能性があることに気づかなかったため、悪意のあるコードに気づきませんでした(深刻なのはなぜですか?なぜそこにあるのですか?)。他に見逃したものはありますか? これまでの私のリストは次のとおりです。 シェル実行 system exec popen backtick operator pcntl_exec PHP実行 eval preg_replace(/e修飾子付き) create_function include[ _once] / require[ _once](エクスプロイトの詳細については、マリオの回答を参照してください) ファイルを変更できる関数のリストがあると便利かもしれませんが、99%の確率で、エクスプロイトコードに上記の関数の少なくとも1つが含まれると思います。しかし、ファイルの編集または出力が可能なすべての機能のリストがある場合は、それを投稿してください。ここに含めます。(そしてmysql_execute、それは別のクラスのエクスプロイトの一部なので、私はカウントしていません。)